@unipin/angular-applet 18.9.7 → 21.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/README.md +49 -10
  2. package/common/assets/sprites/flagGlobal.png +0 -0
  3. package/common/assets/sprites/flagSprite42.webp +0 -0
  4. package/common/assets/styles/freakflags.scss +263 -0
  5. package/common/assets/styles/theme.css +69 -0
  6. package/fesm2022/unipin-angular-applet-accordion.mjs +242 -0
  7. package/fesm2022/unipin-angular-applet-accordion.mjs.map +1 -0
  8. package/fesm2022/unipin-angular-applet-alert-dialog.mjs +267 -0
  9. package/fesm2022/unipin-angular-applet-alert-dialog.mjs.map +1 -0
  10. package/fesm2022/unipin-angular-applet-alert.mjs +94 -0
  11. package/fesm2022/unipin-angular-applet-alert.mjs.map +1 -0
  12. package/fesm2022/unipin-angular-applet-auth.mjs +707 -0
  13. package/fesm2022/unipin-angular-applet-auth.mjs.map +1 -0
  14. package/fesm2022/unipin-angular-applet-avatar.mjs +41 -0
  15. package/fesm2022/unipin-angular-applet-avatar.mjs.map +1 -0
  16. package/fesm2022/unipin-angular-applet-badge.mjs +50 -0
  17. package/fesm2022/unipin-angular-applet-badge.mjs.map +1 -0
  18. package/fesm2022/unipin-angular-applet-buttons.mjs +263 -0
  19. package/fesm2022/unipin-angular-applet-buttons.mjs.map +1 -0
  20. package/fesm2022/unipin-angular-applet-calendar.mjs +492 -0
  21. package/fesm2022/unipin-angular-applet-calendar.mjs.map +1 -0
  22. package/fesm2022/unipin-angular-applet-collapsible.mjs +97 -0
  23. package/fesm2022/unipin-angular-applet-collapsible.mjs.map +1 -0
  24. package/fesm2022/unipin-angular-applet-common.mjs +342 -0
  25. package/fesm2022/unipin-angular-applet-common.mjs.map +1 -0
  26. package/fesm2022/unipin-angular-applet-containers.mjs +472 -0
  27. package/fesm2022/unipin-angular-applet-containers.mjs.map +1 -0
  28. package/fesm2022/unipin-angular-applet-dialog.mjs +535 -0
  29. package/fesm2022/unipin-angular-applet-dialog.mjs.map +1 -0
  30. package/fesm2022/unipin-angular-applet-forms.mjs +1699 -0
  31. package/fesm2022/unipin-angular-applet-forms.mjs.map +1 -0
  32. package/fesm2022/unipin-angular-applet-froala.mjs +298 -0
  33. package/fesm2022/unipin-angular-applet-froala.mjs.map +1 -0
  34. package/fesm2022/unipin-angular-applet-grids.mjs +105 -0
  35. package/fesm2022/unipin-angular-applet-grids.mjs.map +1 -0
  36. package/fesm2022/unipin-angular-applet-infinite-scroll.mjs +86 -0
  37. package/fesm2022/unipin-angular-applet-infinite-scroll.mjs.map +1 -0
  38. package/fesm2022/unipin-angular-applet-json-viewer.mjs +71 -0
  39. package/fesm2022/unipin-angular-applet-json-viewer.mjs.map +1 -0
  40. package/fesm2022/unipin-angular-applet-loading-dialog.mjs +252 -0
  41. package/fesm2022/unipin-angular-applet-loading-dialog.mjs.map +1 -0
  42. package/fesm2022/unipin-angular-applet-markdown.mjs +703 -0
  43. package/fesm2022/unipin-angular-applet-markdown.mjs.map +1 -0
  44. package/fesm2022/unipin-angular-applet-micro-frontend.mjs +75 -0
  45. package/fesm2022/unipin-angular-applet-micro-frontend.mjs.map +1 -0
  46. package/fesm2022/unipin-angular-applet-popover.mjs +333 -0
  47. package/fesm2022/unipin-angular-applet-popover.mjs.map +1 -0
  48. package/fesm2022/unipin-angular-applet-progress-bar.mjs +38 -0
  49. package/fesm2022/unipin-angular-applet-progress-bar.mjs.map +1 -0
  50. package/fesm2022/unipin-angular-applet-skeleton.mjs +32 -0
  51. package/fesm2022/unipin-angular-applet-skeleton.mjs.map +1 -0
  52. package/fesm2022/unipin-angular-applet-spinner.mjs +144 -0
  53. package/fesm2022/unipin-angular-applet-spinner.mjs.map +1 -0
  54. package/fesm2022/unipin-angular-applet-swipeable.mjs +270 -0
  55. package/fesm2022/unipin-angular-applet-swipeable.mjs.map +1 -0
  56. package/fesm2022/unipin-angular-applet-tabs.mjs +142 -0
  57. package/fesm2022/unipin-angular-applet-tabs.mjs.map +1 -0
  58. package/fesm2022/unipin-angular-applet-tooltip.mjs +118 -0
  59. package/fesm2022/unipin-angular-applet-tooltip.mjs.map +1 -0
  60. package/fesm2022/unipin-angular-applet.mjs +5 -4617
  61. package/fesm2022/unipin-angular-applet.mjs.map +1 -1
  62. package/package.json +132 -29
  63. package/types/unipin-angular-applet-accordion.d.ts +60 -0
  64. package/types/unipin-angular-applet-alert-dialog.d.ts +35 -0
  65. package/types/unipin-angular-applet-alert.d.ts +34 -0
  66. package/types/unipin-angular-applet-auth.d.ts +225 -0
  67. package/types/unipin-angular-applet-avatar.d.ts +16 -0
  68. package/types/unipin-angular-applet-badge.d.ts +20 -0
  69. package/types/unipin-angular-applet-buttons.d.ts +37 -0
  70. package/types/unipin-angular-applet-calendar.d.ts +44 -0
  71. package/types/unipin-angular-applet-collapsible.d.ts +35 -0
  72. package/types/unipin-angular-applet-common.d.ts +94 -0
  73. package/types/unipin-angular-applet-containers.d.ts +179 -0
  74. package/types/unipin-angular-applet-dialog.d.ts +180 -0
  75. package/types/unipin-angular-applet-forms.d.ts +412 -0
  76. package/types/unipin-angular-applet-froala.d.ts +85 -0
  77. package/types/unipin-angular-applet-grids.d.ts +22 -0
  78. package/types/unipin-angular-applet-infinite-scroll.d.ts +51 -0
  79. package/types/unipin-angular-applet-json-viewer.d.ts +30 -0
  80. package/types/unipin-angular-applet-loading-dialog.d.ts +19 -0
  81. package/types/unipin-angular-applet-markdown.d.ts +119 -0
  82. package/types/unipin-angular-applet-micro-frontend.d.ts +11 -0
  83. package/types/unipin-angular-applet-popover.d.ts +58 -0
  84. package/types/unipin-angular-applet-progress-bar.d.ts +14 -0
  85. package/types/unipin-angular-applet-skeleton.d.ts +11 -0
  86. package/types/unipin-angular-applet-spinner.d.ts +12 -0
  87. package/types/unipin-angular-applet-swipeable.d.ts +66 -0
  88. package/types/unipin-angular-applet-tabs.d.ts +40 -0
  89. package/types/unipin-angular-applet-tooltip.d.ts +32 -0
  90. package/types/unipin-angular-applet.d.ts +3 -0
  91. package/esm2022/graphql/generated.mjs +0 -938
  92. package/esm2022/lib/components/approval/detail/approval-detail.component.mjs +0 -78
  93. package/esm2022/lib/components/approval/form/approval-form.component.mjs +0 -128
  94. package/esm2022/lib/components/approval/index.mjs +0 -5
  95. package/esm2022/lib/components/approval/list/approval-list.component.mjs +0 -114
  96. package/esm2022/lib/components/approval/list/provide-approval-entities.util.mjs +0 -9
  97. package/esm2022/lib/components/approval/services/approval.service.mjs +0 -46
  98. package/esm2022/lib/components/audit/detail/audit-detail.component.mjs +0 -123
  99. package/esm2022/lib/components/audit/index.mjs +0 -3
  100. package/esm2022/lib/components/audit/list/audit-list.component.mjs +0 -81
  101. package/esm2022/lib/components/audit/service/audit.service.mjs +0 -49
  102. package/esm2022/lib/components/audit/types/audit-detail-form.type.mjs +0 -2
  103. package/esm2022/lib/components/buttons/group/btn-group.component.mjs +0 -43
  104. package/esm2022/lib/components/buttons/group/interfaces/btn-group-config.interface.mjs +0 -2
  105. package/esm2022/lib/components/buttons/index.mjs +0 -3
  106. package/esm2022/lib/components/buttons/loading/btn-loading.component.mjs +0 -48
  107. package/esm2022/lib/components/containers/applet-container/applet-container.component.mjs +0 -55
  108. package/esm2022/lib/components/containers/applet-container/provide-applet-config.util.mjs +0 -9
  109. package/esm2022/lib/components/containers/colum-header-container/column-header-container.component.mjs +0 -23
  110. package/esm2022/lib/components/containers/column-container/column-container.component.mjs +0 -79
  111. package/esm2022/lib/components/containers/column-container/directives/lazy-route.directive.mjs +0 -57
  112. package/esm2022/lib/components/containers/index.mjs +0 -7
  113. package/esm2022/lib/components/containers/list-container/index.mjs +0 -3
  114. package/esm2022/lib/components/containers/list-container/interfaces/list-container-config.interface.mjs +0 -2
  115. package/esm2022/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.mjs +0 -58
  116. package/esm2022/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.mjs +0 -57
  117. package/esm2022/lib/components/containers/modal-container/modal-container.component.mjs +0 -40
  118. package/esm2022/lib/components/filter/filter.component.mjs +0 -222
  119. package/esm2022/lib/components/filter/index.mjs +0 -2
  120. package/esm2022/lib/components/filter/interfaces/filter-config.interface.mjs +0 -2
  121. package/esm2022/lib/components/filter/interfaces/filter-field.interface.mjs +0 -2
  122. package/esm2022/lib/components/filter/interfaces/filter-search-event.interface.mjs +0 -2
  123. package/esm2022/lib/components/forms/country-input/form-country-input.component.mjs +0 -122
  124. package/esm2022/lib/components/forms/currency-input/form-currency-input.component.mjs +0 -157
  125. package/esm2022/lib/components/forms/date/form-date.component.mjs +0 -117
  126. package/esm2022/lib/components/forms/image-picker/directives/drag-n-drop.directive.mjs +0 -49
  127. package/esm2022/lib/components/forms/image-picker/form-image-picker.component.mjs +0 -68
  128. package/esm2022/lib/components/forms/index.mjs +0 -12
  129. package/esm2022/lib/components/forms/input/form-input.component.mjs +0 -98
  130. package/esm2022/lib/components/forms/number/form-number.component.mjs +0 -97
  131. package/esm2022/lib/components/forms/number/pipes/locale-number.pipe.mjs +0 -33
  132. package/esm2022/lib/components/forms/password/form-password.component.mjs +0 -100
  133. package/esm2022/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.mjs +0 -135
  134. package/esm2022/lib/components/forms/searchable-select/form-searchable-select.component.mjs +0 -138
  135. package/esm2022/lib/components/forms/select/form-select.component.mjs +0 -119
  136. package/esm2022/lib/components/forms/textarea/form-textarea.component.mjs +0 -88
  137. package/esm2022/lib/components/grids/grid-pagination/grid-pagination.component.mjs +0 -111
  138. package/esm2022/lib/components/grids/grid-snapshot/grid-snapshot.component.mjs +0 -109
  139. package/esm2022/lib/components/grids/index.mjs +0 -4
  140. package/esm2022/lib/components/grids/interfaces/grid-config.interface.mjs +0 -2
  141. package/esm2022/lib/components/grids/services/grid.service.mjs +0 -25
  142. package/esm2022/lib/components/index.mjs +0 -9
  143. package/esm2022/lib/components/infinite-scroll/directive/infinite-scroll.directive.mjs +0 -43
  144. package/esm2022/lib/components/infinite-scroll/index.mjs +0 -3
  145. package/esm2022/lib/components/infinite-scroll/infinite-scroll.component.mjs +0 -36
  146. package/esm2022/lib/components/tabs/index.mjs +0 -3
  147. package/esm2022/lib/components/tabs/tab-content/tab-content.component.mjs +0 -37
  148. package/esm2022/lib/components/tabs/tab-group/tab-group.component.mjs +0 -47
  149. package/esm2022/lib/guards/auth/auth.guard.mjs +0 -10
  150. package/esm2022/lib/guards/index.mjs +0 -2
  151. package/esm2022/lib/interceptors/header/header.interceptor.mjs +0 -29
  152. package/esm2022/lib/interceptors/index.mjs +0 -3
  153. package/esm2022/lib/interceptors/refresh-token/refresh-token.interceptor.mjs +0 -83
  154. package/esm2022/lib/interfaces/index.mjs +0 -2
  155. package/esm2022/lib/interfaces/user/user.interface.mjs +0 -2
  156. package/esm2022/lib/modules/index.mjs +0 -3
  157. package/esm2022/lib/modules/micro-frontend/index.mjs +0 -2
  158. package/esm2022/lib/modules/micro-frontend/utils/mf-bootstrap.util.mjs +0 -55
  159. package/esm2022/lib/modules/micro-frontend/utils/mf-global-state.util.mjs +0 -14
  160. package/esm2022/lib/modules/permission/directive/permission.directive.mjs +0 -41
  161. package/esm2022/lib/modules/permission/guards/permission.guard.mjs +0 -26
  162. package/esm2022/lib/modules/permission/index.mjs +0 -7
  163. package/esm2022/lib/modules/permission/pages/401/unauthorized.page.mjs +0 -15
  164. package/esm2022/lib/modules/permission/pages/loading/loading.page.mjs +0 -65
  165. package/esm2022/lib/modules/permission/pages/loading/provide-loading-config.util.mjs +0 -9
  166. package/esm2022/lib/modules/permission/services/permission.service.mjs +0 -50
  167. package/esm2022/lib/resolvers/auth/auth.resolver.mjs +0 -87
  168. package/esm2022/lib/resolvers/index.mjs +0 -2
  169. package/esm2022/lib/services/auth/auth.service.mjs +0 -171
  170. package/esm2022/lib/services/country/country.service.mjs +0 -43
  171. package/esm2022/lib/services/currency/currency.service.mjs +0 -40
  172. package/esm2022/lib/services/index.mjs +0 -6
  173. package/esm2022/lib/services/profile/profile.service.mjs +0 -82
  174. package/esm2022/lib/services/rate-group-code/rate-group-code.service.mjs +0 -31
  175. package/esm2022/lib/utils/contrast-color-generator/contrast-color-generator.util.mjs +0 -16
  176. package/esm2022/lib/utils/form-error-message/form-error-message.util.mjs +0 -21
  177. package/esm2022/lib/utils/format-capitalize/format-capitalize.util.mjs +0 -18
  178. package/esm2022/lib/utils/index.mjs +0 -5
  179. package/esm2022/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.mjs +0 -9
  180. package/esm2022/public-api.mjs +0 -10
  181. package/esm2022/unipin-angular-applet.mjs +0 -2
  182. package/graphql/generated.d.ts +0 -16225
  183. package/index.d.ts +0 -2
  184. package/lib/components/approval/detail/approval-detail.component.d.ts +0 -26
  185. package/lib/components/approval/form/approval-form.component.d.ts +0 -33
  186. package/lib/components/approval/index.d.ts +0 -4
  187. package/lib/components/approval/list/approval-list.component.d.ts +0 -33
  188. package/lib/components/approval/list/provide-approval-entities.util.d.ts +0 -3
  189. package/lib/components/approval/services/approval.service.d.ts +0 -18
  190. package/lib/components/audit/detail/audit-detail.component.d.ts +0 -33
  191. package/lib/components/audit/index.d.ts +0 -2
  192. package/lib/components/audit/list/audit-list.component.d.ts +0 -31
  193. package/lib/components/audit/service/audit.service.d.ts +0 -15
  194. package/lib/components/audit/types/audit-detail-form.type.d.ts +0 -12
  195. package/lib/components/buttons/group/btn-group.component.d.ts +0 -18
  196. package/lib/components/buttons/group/interfaces/btn-group-config.interface.d.ts +0 -11
  197. package/lib/components/buttons/index.d.ts +0 -3
  198. package/lib/components/buttons/loading/btn-loading.component.d.ts +0 -19
  199. package/lib/components/containers/applet-container/applet-container.component.d.ts +0 -22
  200. package/lib/components/containers/applet-container/provide-applet-config.util.d.ts +0 -15
  201. package/lib/components/containers/colum-header-container/column-header-container.component.d.ts +0 -7
  202. package/lib/components/containers/column-container/column-container.component.d.ts +0 -26
  203. package/lib/components/containers/column-container/directives/lazy-route.directive.d.ts +0 -17
  204. package/lib/components/containers/index.d.ts +0 -6
  205. package/lib/components/containers/list-container/index.d.ts +0 -3
  206. package/lib/components/containers/list-container/interfaces/list-container-config.interface.d.ts +0 -9
  207. package/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.d.ts +0 -23
  208. package/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.d.ts +0 -23
  209. package/lib/components/containers/modal-container/modal-container.component.d.ts +0 -16
  210. package/lib/components/filter/filter.component.d.ts +0 -44
  211. package/lib/components/filter/index.d.ts +0 -4
  212. package/lib/components/filter/interfaces/filter-config.interface.d.ts +0 -5
  213. package/lib/components/filter/interfaces/filter-field.interface.d.ts +0 -24
  214. package/lib/components/filter/interfaces/filter-search-event.interface.d.ts +0 -4
  215. package/lib/components/forms/country-input/form-country-input.component.d.ts +0 -41
  216. package/lib/components/forms/currency-input/form-currency-input.component.d.ts +0 -52
  217. package/lib/components/forms/date/form-date.component.d.ts +0 -33
  218. package/lib/components/forms/image-picker/directives/drag-n-drop.directive.d.ts +0 -10
  219. package/lib/components/forms/image-picker/form-image-picker.component.d.ts +0 -21
  220. package/lib/components/forms/index.d.ts +0 -11
  221. package/lib/components/forms/input/form-input.component.d.ts +0 -31
  222. package/lib/components/forms/number/form-number.component.d.ts +0 -27
  223. package/lib/components/forms/number/pipes/locale-number.pipe.d.ts +0 -8
  224. package/lib/components/forms/password/form-password.component.d.ts +0 -27
  225. package/lib/components/forms/rate-group-code-input/form-rate-group-code-input.component.d.ts +0 -41
  226. package/lib/components/forms/searchable-select/form-searchable-select.component.d.ts +0 -42
  227. package/lib/components/forms/select/form-select.component.d.ts +0 -34
  228. package/lib/components/forms/textarea/form-textarea.component.d.ts +0 -26
  229. package/lib/components/grids/grid-pagination/grid-pagination.component.d.ts +0 -33
  230. package/lib/components/grids/grid-snapshot/grid-snapshot.component.d.ts +0 -36
  231. package/lib/components/grids/index.d.ts +0 -4
  232. package/lib/components/grids/interfaces/grid-config.interface.d.ts +0 -16
  233. package/lib/components/grids/services/grid.service.d.ts +0 -12
  234. package/lib/components/index.d.ts +0 -8
  235. package/lib/components/infinite-scroll/directive/infinite-scroll.directive.d.ts +0 -15
  236. package/lib/components/infinite-scroll/index.d.ts +0 -2
  237. package/lib/components/infinite-scroll/infinite-scroll.component.d.ts +0 -12
  238. package/lib/components/tabs/index.d.ts +0 -6
  239. package/lib/components/tabs/tab-content/tab-content.component.d.ts +0 -14
  240. package/lib/components/tabs/tab-group/tab-group.component.d.ts +0 -18
  241. package/lib/guards/auth/auth.guard.d.ts +0 -1
  242. package/lib/guards/index.d.ts +0 -1
  243. package/lib/interceptors/header/header.interceptor.d.ts +0 -9
  244. package/lib/interceptors/index.d.ts +0 -2
  245. package/lib/interceptors/refresh-token/refresh-token.interceptor.d.ts +0 -14
  246. package/lib/interfaces/index.d.ts +0 -1
  247. package/lib/interfaces/user/user.interface.d.ts +0 -27
  248. package/lib/modules/index.d.ts +0 -2
  249. package/lib/modules/micro-frontend/index.d.ts +0 -1
  250. package/lib/modules/micro-frontend/utils/mf-bootstrap.util.d.ts +0 -9
  251. package/lib/modules/micro-frontend/utils/mf-global-state.util.d.ts +0 -4
  252. package/lib/modules/permission/directive/permission.directive.d.ts +0 -16
  253. package/lib/modules/permission/guards/permission.guard.d.ts +0 -2
  254. package/lib/modules/permission/index.d.ts +0 -6
  255. package/lib/modules/permission/pages/401/unauthorized.page.d.ts +0 -5
  256. package/lib/modules/permission/pages/loading/loading.page.d.ts +0 -18
  257. package/lib/modules/permission/pages/loading/provide-loading-config.util.d.ts +0 -10
  258. package/lib/modules/permission/services/permission.service.d.ts +0 -21
  259. package/lib/resolvers/auth/auth.resolver.d.ts +0 -14
  260. package/lib/resolvers/index.d.ts +0 -1
  261. package/lib/services/auth/auth.service.d.ts +0 -39
  262. package/lib/services/country/country.service.d.ts +0 -16
  263. package/lib/services/currency/currency.service.d.ts +0 -16
  264. package/lib/services/index.d.ts +0 -5
  265. package/lib/services/profile/profile.service.d.ts +0 -12
  266. package/lib/services/rate-group-code/rate-group-code.service.d.ts +0 -14
  267. package/lib/utils/contrast-color-generator/contrast-color-generator.util.d.ts +0 -4
  268. package/lib/utils/form-error-message/form-error-message.util.d.ts +0 -2
  269. package/lib/utils/format-capitalize/format-capitalize.util.d.ts +0 -1
  270. package/lib/utils/index.d.ts +0 -4
  271. package/lib/utils/redirect-to-first-menu/redirect-to-first-menu.util.d.ts +0 -2
  272. package/public-api.d.ts +0 -11
  273. package/src/assets/scss/forms.scss +0 -65
  274. package/src/assets/scss/grid.scss +0 -7505
  275. package/src/assets/scss/select.scss +0 -328
@@ -0,0 +1,38 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, Directive } from '@angular/core';
3
+ import { up } from '@unipin/angular-applet/common';
4
+
5
+ class UpProgressBarDirective {
6
+ constructor() {
7
+ this.max = input.required(...(ngDevMode ? [{ debugName: "max" }] : []));
8
+ this.progress = input.required(...(ngDevMode ? [{ debugName: "progress" }] : []));
9
+ this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
10
+ this._computedClass = computed(() => {
11
+ return up('block w-full h-2 rounded overflow-hidden relative bg-muted', `before:content-[''] before:absolute before:top-0 before:left-0 before:h-full before:block before:bg-primary before:transition-all before:w-[var(--progress-width)]`, this.inlineClass());
12
+ }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
13
+ this._progressWidth = computed(() => {
14
+ return `${Math.max(0, Math.min(100, (this.progress() / this.max()) * 100 || 0))}%`;
15
+ }, ...(ngDevMode ? [{ debugName: "_progressWidth" }] : []));
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpProgressBarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpProgressBarDirective, isStandalone: true, selector: "[upProgressBar]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: true, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: true, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()", "style.--progress-width": "_progressWidth()" } }, exportAs: ["upProgressBar"], ngImport: i0 }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpProgressBarDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ standalone: true,
24
+ exportAs: 'upProgressBar',
25
+ selector: '[upProgressBar]',
26
+ host: {
27
+ '[class]': '_computedClass()',
28
+ '[style.--progress-width]': '_progressWidth()',
29
+ },
30
+ }]
31
+ }], propDecorators: { max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: true }] }], progress: [{ type: i0.Input, args: [{ isSignal: true, alias: "progress", required: true }] }], inlineClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
32
+
33
+ /**
34
+ * Generated bundle index. Do not edit.
35
+ */
36
+
37
+ export { UpProgressBarDirective };
38
+ //# sourceMappingURL=unipin-angular-applet-progress-bar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unipin-angular-applet-progress-bar.mjs","sources":["../../../projects/unipin-angular/progress-bar/progress-bar.directive.ts","../../../projects/unipin-angular/progress-bar/unipin-angular-applet-progress-bar.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upProgressBar',\n selector: '[upProgressBar]',\n host: {\n '[class]': '_computedClass()',\n '[style.--progress-width]': '_progressWidth()',\n },\n})\nexport class UpProgressBarDirective {\n\n public readonly max = input.required<number>();\n public readonly progress = input.required<number>();\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block w-full h-2 rounded overflow-hidden relative bg-muted',\n `before:content-[''] before:absolute before:top-0 before:left-0 before:h-full before:block before:bg-primary before:transition-all before:w-[var(--progress-width)]`,\n this.inlineClass()\n );\n }\n );\n\n protected readonly _progressWidth = computed(\n () => {\n return `${\n Math.max(\n 0, \n Math.min(\n 100, \n (this.progress() / this.max()) * 100 || 0\n )\n )\n }%`;\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAaa,sBAAsB,CAAA;AATnC,IAAA,WAAA,GAAA;AAWkB,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,8CAAU;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,mDAAU;AACnC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,+CAAI,KAAK,EAAE,OAAO,EAAA,CAAA,GAAA,CAAhB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAC;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,4DAA4D,EAC5D,CAAA,kKAAA,CAAoK,EACpK,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;AAEkB,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;AACH,YAAA,OAAO,CAAA,EACL,IAAI,CAAC,GAAG,CACN,CAAC,EACD,IAAI,CAAC,GAAG,CACN,GAAG,EACH,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,CAC1C,CAEL,GAAG;AACL,QAAA,CAAC,0DACF;AACF,IAAA;8GA7BY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,0BAA0B,EAAE,kBAAkB;AAC/C,qBAAA;AACF,iBAAA;;;ACZD;;AAEG;;;;"}
@@ -0,0 +1,32 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, Directive } from '@angular/core';
3
+ import { up } from '@unipin/angular-applet/common';
4
+
5
+ class UpSkeletonDirective {
6
+ constructor() {
7
+ this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
8
+ this._computedClass = computed(() => {
9
+ return up('block animate-pulse rounded-md bg-muted', this.inlineClass());
10
+ }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSkeletonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpSkeletonDirective, isStandalone: true, selector: "[upSkeleton]", inputs: { inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSkeleton"], ngImport: i0 }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSkeletonDirective, decorators: [{
16
+ type: Directive,
17
+ args: [{
18
+ standalone: true,
19
+ exportAs: 'upSkeleton',
20
+ selector: '[upSkeleton]',
21
+ host: {
22
+ '[class]': '_computedClass()',
23
+ }
24
+ }]
25
+ }], propDecorators: { inlineClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
26
+
27
+ /**
28
+ * Generated bundle index. Do not edit.
29
+ */
30
+
31
+ export { UpSkeletonDirective };
32
+ //# sourceMappingURL=unipin-angular-applet-skeleton.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unipin-angular-applet-skeleton.mjs","sources":["../../../projects/unipin-angular/skeleton/skeleton.directive.ts","../../../projects/unipin-angular/skeleton/unipin-angular-applet-skeleton.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upSkeleton',\n selector: '[upSkeleton]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSkeletonDirective {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block animate-pulse rounded-md bg-muted',\n this.inlineClass(),\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,mBAAmB,CAAA;AARhC,IAAA,WAAA,GAAA;AAUkB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,+CAAI,KAAK,EAAE,OAAO,EAAA,CAAA,GAAA,CAAhB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAC;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,yCAAyC,EACzC,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;AACF,IAAA;8GAZY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B;AACF,iBAAA;;;ACXD;;AAEG;;;;"}
@@ -0,0 +1,144 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, numberAttribute, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { up } from '@unipin/angular-applet/common';
4
+
5
+ class UpSpinnerComponent {
6
+ constructor() {
7
+ this.stokeWidth = input(8, ...(ngDevMode ? [{ debugName: "stokeWidth", transform: numberAttribute }] : [{ transform: numberAttribute }]));
8
+ this.inlineClass = input({ alias: 'class' }, ...(ngDevMode ? [{ debugName: "inlineClass" }] : []));
9
+ this._computedClass = computed(() => {
10
+ return up('inline-block size-8 text-primary', this.inlineClass());
11
+ }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: UpSpinnerComponent, isStandalone: true, selector: "up-spinner", inputs: { stokeWidth: { classPropertyName: "stokeWidth", publicName: "stokeWidth", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "inlineClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0, template: `
15
+ <svg
16
+ aria-hidden="true"
17
+ viewBox="0 0 80 80"
18
+ xmlns="http://www.w3.org/2000/svg"
19
+ >
20
+ <circle
21
+ r="28"
22
+ cx="40"
23
+ cy="40"
24
+ fill="none"
25
+ stroke="currentColor"
26
+ stroke-linecap="round"
27
+ stroke-dashoffset="0"
28
+ stroke-dashoffset="0"
29
+ stroke-dashoffset="0"
30
+ stroke-dashoffset="0"
31
+ stroke-dasharray="44 132"
32
+ class="animate-ring-1"
33
+ [attr.stroke-width]="stokeWidth()"
34
+ />
35
+
36
+ <circle
37
+ r="28"
38
+ cx="40"
39
+ cy="40"
40
+ fill="none"
41
+ stroke="currentColor"
42
+ stroke-linecap="round"
43
+ stroke-dasharray="44 132"
44
+ class="animate-ring-2"
45
+ [attr.stroke-width]="stokeWidth()"
46
+ />
47
+
48
+ <circle
49
+ r="28"
50
+ cx="40"
51
+ cy="40"
52
+ fill="none"
53
+ stroke="currentColor"
54
+ stroke-linecap="round"
55
+ stroke-dasharray="44 132"
56
+ class="animate-ring-3"
57
+ [attr.stroke-width]="stokeWidth()"
58
+ />
59
+
60
+ <circle
61
+ r="28"
62
+ cx="40"
63
+ cy="40"
64
+ fill="none"
65
+ stroke="currentColor"
66
+ stroke-linecap="round"
67
+ stroke-dasharray="44 132"
68
+ class="animate-ring-4"
69
+ [attr.stroke-width]="stokeWidth()"
70
+ />
71
+ </svg>
72
+ `, isInline: true, styles: ["@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-ring-1{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:-.45s;transform-origin:50% 50%}.animate-ring-2{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:-.3s;transform-origin:50% 50%}.animate-ring-3{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:-.15s;transform-origin:50% 50%}.animate-ring-4{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:0s;transform-origin:50% 50%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSpinnerComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ standalone: true, selector: 'up-spinner', changeDetection: ChangeDetectionStrategy.OnPush, host: {
77
+ '[class]': '_computedClass()',
78
+ }, template: `
79
+ <svg
80
+ aria-hidden="true"
81
+ viewBox="0 0 80 80"
82
+ xmlns="http://www.w3.org/2000/svg"
83
+ >
84
+ <circle
85
+ r="28"
86
+ cx="40"
87
+ cy="40"
88
+ fill="none"
89
+ stroke="currentColor"
90
+ stroke-linecap="round"
91
+ stroke-dashoffset="0"
92
+ stroke-dashoffset="0"
93
+ stroke-dashoffset="0"
94
+ stroke-dashoffset="0"
95
+ stroke-dasharray="44 132"
96
+ class="animate-ring-1"
97
+ [attr.stroke-width]="stokeWidth()"
98
+ />
99
+
100
+ <circle
101
+ r="28"
102
+ cx="40"
103
+ cy="40"
104
+ fill="none"
105
+ stroke="currentColor"
106
+ stroke-linecap="round"
107
+ stroke-dasharray="44 132"
108
+ class="animate-ring-2"
109
+ [attr.stroke-width]="stokeWidth()"
110
+ />
111
+
112
+ <circle
113
+ r="28"
114
+ cx="40"
115
+ cy="40"
116
+ fill="none"
117
+ stroke="currentColor"
118
+ stroke-linecap="round"
119
+ stroke-dasharray="44 132"
120
+ class="animate-ring-3"
121
+ [attr.stroke-width]="stokeWidth()"
122
+ />
123
+
124
+ <circle
125
+ r="28"
126
+ cx="40"
127
+ cy="40"
128
+ fill="none"
129
+ stroke="currentColor"
130
+ stroke-linecap="round"
131
+ stroke-dasharray="44 132"
132
+ class="animate-ring-4"
133
+ [attr.stroke-width]="stokeWidth()"
134
+ />
135
+ </svg>
136
+ `, styles: ["@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-ring-1{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:-.45s;transform-origin:50% 50%}.animate-ring-2{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:-.3s;transform-origin:50% 50%}.animate-ring-3{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:-.15s;transform-origin:50% 50%}.animate-ring-4{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:0s;transform-origin:50% 50%}\n"] }]
137
+ }], propDecorators: { stokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "stokeWidth", required: false }] }], inlineClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "inlineClass", required: false }] }] } });
138
+
139
+ /**
140
+ * Generated bundle index. Do not edit.
141
+ */
142
+
143
+ export { UpSpinnerComponent };
144
+ //# sourceMappingURL=unipin-angular-applet-spinner.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unipin-angular-applet-spinner.mjs","sources":["../../../projects/unipin-angular/spinner/spinner.component.ts","../../../projects/unipin-angular/spinner/unipin-angular-applet-spinner.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Component({\n standalone: true,\n selector: 'up-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 80 80\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n r=\"28\"\n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dashoffset=\"0\"\n stroke-dashoffset=\"0\"\n stroke-dashoffset=\"0\"\n stroke-dashoffset=\"0\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-1\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n \n <circle\n r=\"28\" \n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-2\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n \n <circle\n r=\"28\"\n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-3\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n \n <circle\n r=\"28\"\n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-4\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n </svg>\n `,\n styles: `\n @keyframes lds-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n \n .animate-ring-1 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: -0.45s;\n transform-origin: 50% 50%;\n }\n \n .animate-ring-2 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: -0.3s;\n transform-origin: 50% 50%;\n }\n \n .animate-ring-3 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: -0.15s;\n transform-origin: 50% 50%;\n }\n \n .animate-ring-4 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: 0s;\n transform-origin: 50% 50%;\n }\n `\n})\nexport class UpSpinnerComponent {\n \n public readonly stokeWidth = input(8, { transform: numberAttribute });\n public readonly inlineClass = input<ClassValue>({ alias: 'class' });\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'inline-block size-8 text-primary', \n this.inlineClass()\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAyGa,kBAAkB,CAAA;AArG/B,IAAA,WAAA,GAAA;AAuGkB,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,CAAC,8CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;QACrD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEhD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,kCAAkC,EAClC,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;AACF,IAAA;8GAbY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9FnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wiBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAoCU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArG9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,SAAS,EAAE,kBAAkB;qBAC9B,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,wiBAAA,CAAA,EAAA;;;ACrEH;;AAEG;;;;"}
@@ -0,0 +1,270 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ElementRef, input, computed, Directive, output, contentChild, contentChildren, signal, effect, HostListener } from '@angular/core';
3
+ import { up } from '@unipin/angular-applet/common';
4
+ import { UpButtonDirective, buttonVariants } from '@unipin/angular-applet/buttons';
5
+
6
+ class UpSwipeableContentDirective {
7
+ constructor() {
8
+ this.element = inject((ElementRef)).nativeElement;
9
+ this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
10
+ this._computedClass = computed(() => {
11
+ return up(`
12
+ relative flex flex-shrink-0 items-center justify-start
13
+ bg-white z-10
14
+ transition-transform duration-200 ease-out
15
+ will-change-transform
16
+ select-none
17
+ w-fit h-fit
18
+ `, this.inlineClass());
19
+ }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
20
+ }
21
+ translateX(x) {
22
+ this.element.style.transform = `translateX(${x}px)`;
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpSwipeableContentDirective, isStandalone: true, selector: "[upSwipeableContent]", inputs: { inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSwipeableContent"], ngImport: i0 }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableContentDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ standalone: true,
31
+ exportAs: 'upSwipeableContent',
32
+ selector: '[upSwipeableContent]',
33
+ host: {
34
+ '[class]': '_computedClass()',
35
+ }
36
+ }]
37
+ }], propDecorators: { inlineClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
38
+
39
+ class UpSwipeableButtonsDirective {
40
+ constructor() {
41
+ this.side = input.required(...(ngDevMode ? [{ debugName: "side" }] : []));
42
+ this.element = inject((ElementRef)).nativeElement;
43
+ this._computedClass = computed(() => {
44
+ return up('absolute top-px bottom-px h-auto w-2/5 flex items-stretch z-0', this.side() === 'left' ? 'left-px flex-row' : 'right-px flex-row-reverse');
45
+ }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableButtonsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpSwipeableButtonsDirective, isStandalone: true, selector: "[upSwipeableButtons]", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSwipeableButtons"], ngImport: i0 }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableButtonsDirective, decorators: [{
51
+ type: Directive,
52
+ args: [{
53
+ standalone: true,
54
+ exportAs: 'upSwipeableButtons',
55
+ selector: '[upSwipeableButtons]',
56
+ host: {
57
+ '[class]': '_computedClass()',
58
+ }
59
+ }]
60
+ }], propDecorators: { side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: true }] }] } });
61
+
62
+ class UpSwipeableDirective {
63
+ constructor() {
64
+ this.threshold = input(20, ...(ngDevMode ? [{ debugName: "threshold" }] : []));
65
+ this.overSwipeThreshold = input(75, ...(ngDevMode ? [{ debugName: "overSwipeThreshold" }] : []));
66
+ this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
67
+ this.clicked = output();
68
+ this.leftSwiped = output();
69
+ this.rightSwiped = output();
70
+ this.content = contentChild(UpSwipeableContentDirective, ...(ngDevMode ? [{ debugName: "content" }] : []));
71
+ this.buttonContainers = contentChildren(UpSwipeableButtonsDirective, ...(ngDevMode ? [{ debugName: "buttonContainers" }] : []));
72
+ this.containerWidth = signal(0, ...(ngDevMode ? [{ debugName: "containerWidth" }] : []));
73
+ this.buttonWidth = signal({ left: 0, right: 0 }, ...(ngDevMode ? [{ debugName: "buttonWidth" }] : []));
74
+ this.openSide = signal(null, ...(ngDevMode ? [{ debugName: "openSide" }] : []));
75
+ this._computedClass = computed(() => {
76
+ return up('relative w-fit overflow-hidden rounded-md touch-pan-y isolate', this.inlineClass());
77
+ }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
78
+ this.startX = 0;
79
+ this.currentX = 0;
80
+ this.isTouch = false;
81
+ this.isDragging = false;
82
+ this.hasOverswiped = false;
83
+ effect(() => {
84
+ const content = this.content()?.element;
85
+ if (!content) {
86
+ return;
87
+ }
88
+ requestAnimationFrame(() => this.containerWidth.set(content.scrollWidth));
89
+ });
90
+ effect(() => {
91
+ const leftContainer = this.buttonContainers().find(c => c.side() === 'left');
92
+ const rightContainer = this.buttonContainers().find(c => c.side() === 'right');
93
+ requestAnimationFrame(() => {
94
+ this.buttonWidth.set({
95
+ left: leftContainer?.element.offsetWidth ?? 0,
96
+ right: rightContainer?.element.offsetWidth ?? 0,
97
+ });
98
+ });
99
+ });
100
+ }
101
+ onMouseDown(event) {
102
+ this.isTouch = false;
103
+ this.startDrag(event.clientX);
104
+ }
105
+ onMouseMove(event) {
106
+ if (this.isDragging &&
107
+ !this.isTouch) {
108
+ this.handleDrag(event.clientX);
109
+ }
110
+ }
111
+ onMouseUp(event) {
112
+ if (this.isDragging &&
113
+ !this.isTouch) {
114
+ this.dragEnd(event);
115
+ }
116
+ ;
117
+ }
118
+ onTouchStart(event) {
119
+ this.isTouch = true;
120
+ this.startDrag(event.touches[0].clientX);
121
+ }
122
+ onTouchMove(event) {
123
+ if (this.isDragging) {
124
+ this.handleDrag(event.touches[0].clientX);
125
+ }
126
+ }
127
+ onTouchEnd(event) {
128
+ if (!this.openSide()) {
129
+ event.preventDefault();
130
+ }
131
+ this.dragEnd(event);
132
+ }
133
+ startDrag(x) {
134
+ this.startX = x;
135
+ this.currentX = x;
136
+ this.isDragging = true;
137
+ this.hasOverswiped = false;
138
+ }
139
+ handleDrag(x) {
140
+ if (this.hasOverswiped)
141
+ return;
142
+ this.currentX = x;
143
+ const delta = this.currentX - this.startX;
144
+ const overSwipeThreshold = this.overSwipeThreshold();
145
+ if (overSwipeThreshold !== null) {
146
+ const container = this.containerWidth();
147
+ const overswipeDistance = (overSwipeThreshold / 100) * container;
148
+ if (delta > overswipeDistance) {
149
+ return this.triggerOverswipe('right');
150
+ }
151
+ if (delta < -overswipeDistance) {
152
+ return this.triggerOverswipe('left');
153
+ }
154
+ }
155
+ this.content()?.translateX(delta);
156
+ }
157
+ dragEnd(event) {
158
+ if (!this.isDragging) {
159
+ return;
160
+ }
161
+ this.isDragging = false;
162
+ if (this.hasOverswiped) {
163
+ this.closeContent();
164
+ return;
165
+ }
166
+ const delta = this.currentX - this.startX;
167
+ const { left, right } = this.buttonWidth();
168
+ const container = this.containerWidth();
169
+ const openDistance = (this.threshold() / 100) * container;
170
+ const target = event?.target;
171
+ if (target?.closest('[upSwipeableBtn]')) {
172
+ return;
173
+ }
174
+ if (this.openSide() === null &&
175
+ Math.abs(delta) < 5) {
176
+ this.clicked.emit();
177
+ this.closeContent();
178
+ return;
179
+ }
180
+ if (delta > openDistance && left > 0) {
181
+ return this.openContent('left');
182
+ }
183
+ if (delta < -openDistance && right > 0) {
184
+ return this.openContent('right');
185
+ }
186
+ this.closeContent();
187
+ }
188
+ openContent(side) {
189
+ const { left, right } = this.buttonWidth();
190
+ const offset = side === 'left' ? left : -right;
191
+ this.content()?.translateX(offset);
192
+ this.openSide.set(side);
193
+ }
194
+ closeContent() {
195
+ this.content()?.translateX(0);
196
+ this.openSide.set(null);
197
+ }
198
+ triggerOverswipe(side) {
199
+ this.closeContent();
200
+ this.hasOverswiped = true;
201
+ if (side === 'left') {
202
+ this.leftSwiped.emit();
203
+ return;
204
+ }
205
+ this.rightSwiped.emit();
206
+ }
207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
208
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.0.0", type: UpSwipeableDirective, isStandalone: true, selector: "[upSwipeable]", inputs: { threshold: { classPropertyName: "threshold", publicName: "threshold", isSignal: true, isRequired: false, transformFunction: null }, overSwipeThreshold: { classPropertyName: "overSwipeThreshold", publicName: "overSwipeThreshold", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked", leftSwiped: "leftSwiped", rightSwiped: "rightSwiped" }, host: { listeners: { "mousedown": "onMouseDown($event)", "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)", "touchstart": "onTouchStart($event)", "touchmove": "onTouchMove($event)", "touchend": "onTouchEnd($event)" }, properties: { "class": "_computedClass()" } }, queries: [{ propertyName: "content", first: true, predicate: UpSwipeableContentDirective, descendants: true, isSignal: true }, { propertyName: "buttonContainers", predicate: UpSwipeableButtonsDirective, isSignal: true }], exportAs: ["upSwipeable"], ngImport: i0 }); }
209
+ }
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableDirective, decorators: [{
211
+ type: Directive,
212
+ args: [{
213
+ standalone: true,
214
+ exportAs: 'upSwipeable',
215
+ selector: '[upSwipeable]',
216
+ host: {
217
+ '[class]': '_computedClass()',
218
+ }
219
+ }]
220
+ }], ctorParameters: () => [], propDecorators: { threshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "threshold", required: false }] }], overSwipeThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "overSwipeThreshold", required: false }] }], inlineClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }], leftSwiped: [{ type: i0.Output, args: ["leftSwiped"] }], rightSwiped: [{ type: i0.Output, args: ["rightSwiped"] }], content: [{ type: i0.ContentChild, args: [i0.forwardRef(() => UpSwipeableContentDirective), { isSignal: true }] }], buttonContainers: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => UpSwipeableButtonsDirective), { isSignal: true }] }], onMouseDown: [{
221
+ type: HostListener,
222
+ args: ['mousedown', ['$event']]
223
+ }], onMouseMove: [{
224
+ type: HostListener,
225
+ args: ['document:mousemove', ['$event']]
226
+ }], onMouseUp: [{
227
+ type: HostListener,
228
+ args: ['document:mouseup', ['$event']]
229
+ }], onTouchStart: [{
230
+ type: HostListener,
231
+ args: ['touchstart', ['$event']]
232
+ }], onTouchMove: [{
233
+ type: HostListener,
234
+ args: ['touchmove', ['$event']]
235
+ }], onTouchEnd: [{
236
+ type: HostListener,
237
+ args: ['touchend', ['$event']]
238
+ }] } });
239
+
240
+ class UpSwipeableButtonDirective extends UpButtonDirective {
241
+ constructor() {
242
+ super(...arguments);
243
+ this._computedClass = computed(() => {
244
+ return up(buttonVariants({
245
+ size: this.size(),
246
+ variant: this.variant(),
247
+ }), this.inlineClass(), 'h-full rounded-none flex-1');
248
+ }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
249
+ }
250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
251
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0", type: UpSwipeableButtonDirective, isStandalone: true, selector: "[upSwipeableBtn]", host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSwipeableBtn"], usesInheritance: true, ngImport: i0 }); }
252
+ }
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableButtonDirective, decorators: [{
254
+ type: Directive,
255
+ args: [{
256
+ standalone: true,
257
+ exportAs: 'upSwipeableBtn',
258
+ selector: '[upSwipeableBtn]',
259
+ host: {
260
+ '[class]': '_computedClass()',
261
+ },
262
+ }]
263
+ }] });
264
+
265
+ /**
266
+ * Generated bundle index. Do not edit.
267
+ */
268
+
269
+ export { UpSwipeableButtonDirective, UpSwipeableButtonsDirective, UpSwipeableContentDirective, UpSwipeableDirective };
270
+ //# sourceMappingURL=unipin-angular-applet-swipeable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unipin-angular-applet-swipeable.mjs","sources":["../../../projects/unipin-angular/swipeable/directives/swipeable-content.directive.ts","../../../projects/unipin-angular/swipeable/directives/swipeable-buttons.directive.ts","../../../projects/unipin-angular/swipeable/directives/swipeable.directive.ts","../../../projects/unipin-angular/swipeable/directives/swipeable-button.directive.ts","../../../projects/unipin-angular/swipeable/unipin-angular-applet-swipeable.ts"],"sourcesContent":["import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeableContent',\n selector: '[upSwipeableContent]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSwipeableContentDirective {\n \n public readonly element = inject(ElementRef<HTMLElement>).nativeElement;\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n `\n relative flex flex-shrink-0 items-center justify-start\n bg-white z-10\n transition-transform duration-200 ease-out\n will-change-transform\n select-none\n w-fit h-fit\n `,\n this.inlineClass()\n );\n }\n );\n\n public translateX(x: number): void{\n this.element.style.transform = `translateX(${ x }px)`;\n }\n}\n","import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeableButtons',\n selector: '[upSwipeableButtons]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSwipeableButtonsDirective {\n \n public readonly side = input.required<'left' | 'right'>();\n public readonly element = inject(ElementRef<HTMLElement>).nativeElement;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'absolute top-px bottom-px h-auto w-2/5 flex items-stretch z-0',\n this.side() === 'left'? 'left-px flex-row' : 'right-px flex-row-reverse'\n );\n }\n );\n}\n","import { Directive, HostListener, input, output, signal, computed, contentChild, contentChildren, effect } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpSwipeableContentDirective } from './swipeable-content.directive';\nimport { UpSwipeableButtonsDirective } from './swipeable-buttons.directive';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeable',\n selector: '[upSwipeable]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSwipeableDirective {\n\n public readonly threshold = input<number>(20);\n public readonly overSwipeThreshold = input<number>(75);\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly clicked = output<void>();\n public readonly leftSwiped = output<void>();\n public readonly rightSwiped = output<void>();\n\n public readonly content = contentChild(UpSwipeableContentDirective);\n public readonly buttonContainers = contentChildren(UpSwipeableButtonsDirective);\n \n protected readonly containerWidth = signal(0);\n protected readonly buttonWidth = signal({ left: 0, right: 0 });\n protected readonly openSide = signal<'left' | 'right' | null>(null);\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'relative w-fit overflow-hidden rounded-md touch-pan-y isolate',\n this.inlineClass()\n );\n }\n );\n\n protected startX = 0;\n protected currentX = 0;\n protected isTouch = false;\n protected isDragging = false;\n protected hasOverswiped = false;\n \n constructor() {\n effect(\n () => {\n const content = this.content()?.element;\n \n if (!content) {\n return;\n }\n requestAnimationFrame(() => this.containerWidth.set(content.scrollWidth));\n }\n );\n \n effect(\n () => {\n const leftContainer = this.buttonContainers().find(c => c.side() === 'left');\n const rightContainer = this.buttonContainers().find(c => c.side() === 'right');\n\n requestAnimationFrame(\n () => {\n this.buttonWidth.set(\n {\n left: leftContainer?.element.offsetWidth ?? 0,\n right: rightContainer?.element.offsetWidth ?? 0,\n }\n );\n }\n );\n }\n );\n }\n\n @HostListener('mousedown', ['$event'])\n public onMouseDown(event: MouseEvent) {\n this.isTouch = false;\n this.startDrag(event.clientX); \n }\n\n @HostListener('document:mousemove', ['$event'])\n public onMouseMove(event: MouseEvent) {\n if (\n this.isDragging && \n !this.isTouch\n ) {\n this.handleDrag(event.clientX);\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n public onMouseUp(event: MouseEvent) {\n if (\n this.isDragging && \n !this.isTouch\n ) {\n this.dragEnd(event)\n };\n }\n\n @HostListener('touchstart', ['$event'])\n public onTouchStart(event: TouchEvent) {\n this.isTouch = true;\n this.startDrag(event.touches[0].clientX);\n }\n\n @HostListener('touchmove', ['$event'])\n public onTouchMove(event: TouchEvent) {\n if (this.isDragging) {\n this.handleDrag(event.touches[0].clientX);\n }\n }\n\n @HostListener('touchend', ['$event'])\n public onTouchEnd(event: TouchEvent): void{\n if (!this.openSide()) {\n event.preventDefault();\n }\n this.dragEnd(event);\n }\n\n protected startDrag(x: number) {\n this.startX = x;\n this.currentX = x;\n this.isDragging = true;\n this.hasOverswiped = false;\n }\n\n protected handleDrag(x: number) {\n if (this.hasOverswiped) return;\n\n this.currentX = x;\n const delta = this.currentX - this.startX;\n const overSwipeThreshold = this.overSwipeThreshold();\n\n if (overSwipeThreshold !== null) {\n const container = this.containerWidth();\n const overswipeDistance = (overSwipeThreshold / 100) * container;\n \n if (delta > overswipeDistance) {\n return this.triggerOverswipe('right');\n }\n \n if (delta < -overswipeDistance) {\n return this.triggerOverswipe('left');\n }\n }\n this.content()?.translateX(delta);\n }\n \n protected dragEnd(event?: MouseEvent | TouchEvent): void{\n if (!this.isDragging) {\n return;\n }\n this.isDragging = false;\n\n if (this.hasOverswiped) {\n this.closeContent();\n return;\n }\n\n const delta = this.currentX - this.startX;\n const { left, right } = this.buttonWidth();\n const container = this.containerWidth();\n const openDistance = (this.threshold() / 100) * container;\n\n const target = event?.target as HTMLElement | null;\n if (target?.closest('[upSwipeableBtn]')) {\n return;\n }\n\n if (\n this.openSide() === null && \n Math.abs(delta) < 5\n ) {\n this.clicked.emit();\n this.closeContent();\n return;\n }\n\n if (delta > openDistance && left > 0) {\n return this.openContent('left');\n }\n \n if (delta < -openDistance && right > 0) {\n return this.openContent('right');\n }\n this.closeContent();\n }\n\n protected openContent(side: 'left' | 'right'): void{\n const { left, right } = this.buttonWidth();\n const offset = side === 'left'? left : -right;\n \n this.content()?.translateX(offset);\n this.openSide.set(side);\n }\n\n protected closeContent(): void{\n this.content()?.translateX(0);\n this.openSide.set(null);\n }\n\n protected triggerOverswipe(side: 'left' | 'right'): void{\n this.closeContent();\n this.hasOverswiped = true;\n \n if (side === 'left') {\n this.leftSwiped.emit();\n return;\n }\n this.rightSwiped.emit();\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { up } from '@unipin/angular-applet/common';\nimport { buttonVariants, UpButtonDirective, } from '@unipin/angular-applet/buttons';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeableBtn',\n selector: '[upSwipeableBtn]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class UpSwipeableButtonDirective extends UpButtonDirective {\n \n protected override readonly _computedClass = computed(\n () => {\n return up(\n buttonVariants(\n {\n size: this.size(),\n variant: this.variant(),\n }\n ),\n this.inlineClass(),\n 'h-full rounded-none flex-1',\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}