@firestitch/filter 13.4.1 → 14.0.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 (272) hide show
  1. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/16/25/214635fa124a83a4fe3a52bde70e7124d9d011a5d176790a9c607bf1f5ed27cadefc4a1b5a225c0bda11250a180ca5798773e0c108e8d5e2d8559d2f9eed +1 -0
  2. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/44/f9/ee834587d4ac4a429d8c4af2e1562028c7432ac179f9699f2990ab3dadc8e4f66ae45bf22625aedf47fad137e2de39a9b99141784e56d5123544f90c922a +1 -0
  3. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/4d/89/993c2eaff9e0cfca023676bf3f2d3d446f6b6cc90eec839075529d155102b2808a8b44e259d357704acd43143c12af5a5916b4e291a799164b722142ee8e +1 -0
  4. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/52/cb/71f80b48163c432fcb05ac0f736ae7cae10318713c98c74739b3eb5d83ebce635b1a7c77d357b1a4b13a9ae9cfe43348538e4336c25c234551f1e80f0567 +1 -0
  5. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/54/f6/73f0d8ea64a18aa71d80a2cf99d6eb4a2cd345e943127e018913d0f76e9575fabe3aee5002ee4da996e661662d474ad31e9a77f2858c68eed532c2d45d47 +1 -0
  6. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/61/84/7f56389ef39faf5c5b6ad292f668ec6cc5cb6e476d94b1740bdadb9832e3de22a0032b90811f02c80d3d56be5f5e32d8bb900e17ebcb09db379befddc221 +1 -0
  7. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/69/d3/d48ad36dd0a576c4d6f8af3a2ee671037639b0a8d91679992dcbd9dabc284bf316c3126201837e931a162f23cdc4a505608bb64df8e87f59a17364890873 +1 -0
  8. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/70/92/ac80dcd48732b949f163abf36c48b0912598d2bb66e5c1f2056fef872f59fb1b591abbf3bfdbf461a46cbd507eea05a6bd0f14ba3d573f1684cbc78bd094 +1 -0
  9. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/73/10/12664696206dcdab6b084331532b234c439acef8a6428af667a2e1bb1c15e2055b3ac70f44fd8bf508396d3e11a798b40849fd66dbdbd0ff9d9d7e780edd +1 -0
  10. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/74/f6/4c2db73499d08279895e1ab6e2fb65baa613d31218b6968f74143ba03819c72a2720b927ca5a708dd484c0bc6763124e62ce9c2e652f71b740cb2d29ae03 +1 -0
  11. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/78/30/8eedd8d752a08df898806b01abde5b4c1809f6edcba95fcf112c006833b34986c295b62a7e47cd73297c3da78ca6072ef18ba502b6efdd6048dbdbbcd257 +1 -0
  12. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/8c/f8/d9f30e3e898c99e8c3157d4c9157dead1b1115ea4db50aced0c33713cd394bb770b182d1d5087c821d22b2abb99e288191ba9e30954ea4ed9ab6ff70d391 +1 -0
  13. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/8d/53/ad58764bc240411378ae1c47c0c20525da378a3b143795a11bc3fdbf6c9cde6fb2de6c3947d673d5872b9ce205d6274114b3b4dfd27609a636df7fd0b600 +1 -0
  14. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/8f/74/3ed29367f32f9c909f5898704561eb1ebe5cdabba507ba08cbeeaeecd274d020b1401ba871938be899025a265299f8be66c59d59b574a996a74b2987d98e +1 -0
  15. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/a1/ac/1dbcf215585477c3f70180cb40186b5119d9ad1d27b2e0dcde66034c950e334ce0577409535c29bb15d2e6c9238eb9e841177fc62d3949a58bbbb397238d +1 -0
  16. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/a3/08/068a7a29e9cc2385b62d4b0fc14b04a7f09ed469d9b79bb754e37d4933b0ab8aa171b286080e20a11e67f42b8558a4bda64aa03ca097001ecda5c25a9015 +1 -0
  17. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/ae/6c/352ab77e603fa53f25ab95cd6fd19a230095b212464689ab76c89db8d97bd0f221c27fbd84d0767fb5ce7e33f5feb175a9256ab35cf216d30dd3263b6b14 +1 -0
  18. package/.angular/cache/14.2.13/ng-packagr/content-v2/sha512/b6/38/eb8a1b6bd6265968335935cbc2763fbcbb9cd4e32dd58a5234bfd87379ee840044338eeae5f126da9936d21ed423071cfbca6748ee153235addf874824f7 +1 -0
  19. package/.angular/cache/14.2.13/ng-packagr/index-v5/01/3c/d4dca899e5bd80c43ed2e78ec79687adc272ff835d03f0ae48cb881ddd83 +2 -0
  20. package/.angular/cache/14.2.13/ng-packagr/index-v5/05/a7/da2d9625c1bc294409dbf750062e363a1abbe39b51177bfb7e5a9aa9ae81 +2 -0
  21. package/.angular/cache/14.2.13/ng-packagr/index-v5/08/f1/b2e705e45544df7c77f4238b558d569a1215422c2086df9140963f960eef +2 -0
  22. package/.angular/cache/14.2.13/ng-packagr/index-v5/21/1d/398c87beb2402502d4e706beedd98ea707f31b441d6aa7711eef62a0439b +2 -0
  23. package/.angular/cache/14.2.13/ng-packagr/index-v5/26/0b/ee2b1cad7f114e99f8d4da848bd6ceb4e849178b50723d9dcd10f39fb05c +2 -0
  24. package/.angular/cache/14.2.13/ng-packagr/index-v5/26/98/b8614f38ea6fefe80f96f06adb98d925eccfae9eec0937c645a42034614c +2 -0
  25. package/.angular/cache/14.2.13/ng-packagr/index-v5/64/4d/18a7b240783e7b3de33ad33724d2b43e8f3349e840ccab571ca3c6c51c00 +2 -0
  26. package/.angular/cache/14.2.13/ng-packagr/index-v5/64/70/77036e049a76cab5a64caa9cba4b603631c7e9e2f47e6c5fbc7f39d67a2f +2 -0
  27. package/.angular/cache/14.2.13/ng-packagr/index-v5/6c/5d/700bf777ddebfd9b8f15e2709674069747b6fcd37376049712828252ca92 +3 -0
  28. package/.angular/cache/14.2.13/ng-packagr/index-v5/71/89/4e4e3808e28a4a95a98391ab38f87f165ae234aefd4231092d1f531f56b3 +2 -0
  29. package/.angular/cache/14.2.13/ng-packagr/index-v5/7c/c2/bd7b21a07f8b1da7797f40df86dc4289416305c26464c6b965a336fd3975 +2 -0
  30. package/.angular/cache/14.2.13/ng-packagr/index-v5/85/64/cb2f22b4df13a70eb519564e382de3d7dd3747bc0cab1109017f8934cff8 +2 -0
  31. package/.angular/cache/14.2.13/ng-packagr/index-v5/96/b1/2730596477eee53fc70082999f48e373f6795e68d21e04234a45131added +2 -0
  32. package/.angular/cache/14.2.13/ng-packagr/index-v5/af/e4/165326aa8daa8e07ac9e02bde3d64a31b00d1b2b59a797a51a89456d2ad6 +2 -0
  33. package/.angular/cache/14.2.13/ng-packagr/index-v5/cd/96/32e83b96bce723e8ad58fdb7c43cf0002b3e0561309899e8b2a75204cbff +2 -0
  34. package/.angular/cache/14.2.13/ng-packagr/index-v5/dd/38/1f423a0e17cf4e99ef3c880daeb533cdce9275226cb2f617aed52e881e59 +2 -0
  35. package/.angular/cache/14.2.13/ng-packagr/index-v5/e4/e8/f48bdfbec024c932fd928e4db790b6454d090d4db31e9d69201a5e1ea466 +2 -0
  36. package/.angular/cache/14.2.13/ng-packagr/index-v5/ee/59/16a63690de125da5067876d4ccf122230175174f3489e48893448bcbdcd3 +2 -0
  37. package/.angular/cache/14.2.13/ng-packagr/index-v5/fd/46/71e9d6d1a123ed68ce03aa617dcaaad4ad9c5a9193f1281166766c453621 +3 -0
  38. package/.angulardoc.json +4 -0
  39. package/.editorconfig +15 -0
  40. package/.eslintrc.json +9 -0
  41. package/.gitmodules +3 -0
  42. package/angular.json +163 -0
  43. package/babel.config.js +11 -0
  44. package/jest.config.js +24 -0
  45. package/{app → package/app}/classes/actions-controller.d.ts +41 -41
  46. package/{app → package/app}/components/action-button/action-button.component.d.ts +9 -9
  47. package/{app → package/app}/components/action-kebab-actions/action-kebab-actions.component.d.ts +7 -7
  48. package/{app → package/app}/components/actions/actions.component.d.ts +13 -13
  49. package/{app → package/app}/components/filter/filter.component.d.ts +204 -204
  50. package/{app → package/app}/components/filter-chip/filter-chip.component.d.ts +26 -26
  51. package/{app → package/app}/components/filter-chip-content/filter-chip-content.component.d.ts +18 -18
  52. package/{app → package/app}/components/filter-chips/filter-chips.component.d.ts +9 -9
  53. package/{app → package/app}/components/filter-drawer/filter-drawer.component.d.ts +30 -30
  54. package/{app → package/app}/components/filter-drawer-actions/filter-drawer-actions.component.d.ts +15 -15
  55. package/{app → package/app}/components/filters-item/autocomplete/autocomplete.component.d.ts +14 -14
  56. package/{app → package/app}/components/filters-item/autocompletechips/autocompletechips.component.d.ts +16 -16
  57. package/{app → package/app}/components/filters-item/base-item/base-item.component.d.ts +25 -25
  58. package/{app → package/app}/components/filters-item/checkbox/checkbox.component.d.ts +11 -11
  59. package/{app → package/app}/components/filters-item/chips/chips.component.d.ts +13 -13
  60. package/{app → package/app}/components/filters-item/date/date.component.d.ts +20 -20
  61. package/{app → package/app}/components/filters-item/date-range/date-range.component.d.ts +15 -15
  62. package/{app → package/app}/components/filters-item/filter-item.component.d.ts +39 -39
  63. package/{app → package/app}/components/filters-item/range/range.component.d.ts +15 -15
  64. package/{app → package/app}/components/filters-item/select/backdrop/backdrop.component.d.ts +6 -6
  65. package/{app → package/app}/components/filters-item/select/groups/groups.component.d.ts +12 -12
  66. package/{app → package/app}/components/filters-item/select/multiple/multiple.component.d.ts +15 -15
  67. package/{app → package/app}/components/filters-item/select/select.component.d.ts +23 -23
  68. package/{app → package/app}/components/filters-item/select/simple/simple.component.d.ts +14 -14
  69. package/{app → package/app}/components/filters-item/text/text.component.d.ts +19 -19
  70. package/{app → package/app}/components/filters-item/week/week.component.d.ts +12 -12
  71. package/{app → package/app}/components/saved-filter/index.d.ts +3 -3
  72. package/{app → package/app}/components/saved-filter/saved-filter-edit/index.d.ts +1 -1
  73. package/{app → package/app}/components/saved-filter/saved-filter-edit/saved-filter-edit.component.d.ts +18 -18
  74. package/{app → package/app}/components/saved-filter/saved-filter-manage/index.d.ts +1 -1
  75. package/{app → package/app}/components/saved-filter/saved-filter-manage/saved-filter-manage.component.d.ts +16 -16
  76. package/{app → package/app}/components/saved-filter/saved-filters-menu/index.d.ts +1 -1
  77. package/{app → package/app}/components/saved-filter/saved-filters-menu/saved-filters-menu.component.d.ts +23 -23
  78. package/{app → package/app}/consts/query-param-delimiter.d.ts +1 -1
  79. package/{app → package/app}/directives/focus-to-item/focus-to-item.directive.d.ts +27 -27
  80. package/{app → package/app}/directives/status-bar/status-bar.directive.d.ts +8 -8
  81. package/{app → package/app}/enums/action-mode.enum.d.ts +6 -6
  82. package/{app → package/app}/enums/action-type.enum.d.ts +9 -9
  83. package/{app → package/app}/enums/button-style.d.ts +9 -9
  84. package/{app → package/app}/enums/index.d.ts +6 -6
  85. package/{app → package/app}/enums/item-date-mode.enum.d.ts +5 -5
  86. package/{app → package/app}/enums/item-type.enum.d.ts +15 -15
  87. package/{app → package/app}/enums/picker-view-type.enum.d.ts +7 -7
  88. package/{app → package/app}/fs-filter.module.d.ts +70 -70
  89. package/{app → package/app}/helpers/build-query-params.d.ts +3 -3
  90. package/{app → package/app}/helpers/compare.d.ts +2 -2
  91. package/{app → package/app}/helpers/create-filter-item.d.ts +14 -14
  92. package/{app → package/app}/helpers/find-value.d.ts +1 -1
  93. package/{app → package/app}/helpers/get-range-name.d.ts +1 -1
  94. package/{app → package/app}/helpers/parse-date.d.ts +1 -1
  95. package/{app → package/app}/helpers/parse-item-value-from-stored.d.ts +1 -1
  96. package/{app → package/app}/helpers/query-param-transformers.d.ts +2 -2
  97. package/{app → package/app}/helpers/restore-items.d.ts +12 -12
  98. package/{app → package/app}/injectors/filter-config.d.ts +2 -2
  99. package/{app → package/app}/injectors/filter-drawer-data.d.ts +2 -2
  100. package/{app → package/app}/injectors/filter-drawer-overlay.d.ts +2 -2
  101. package/{app → package/app}/interfaces/action.interface.d.ts +81 -81
  102. package/{app → package/app}/interfaces/config.interface.d.ts +66 -66
  103. package/{app → package/app}/interfaces/external-params.interface.d.ts +3 -3
  104. package/{app → package/app}/interfaces/filter.interface.d.ts +4 -4
  105. package/{app → package/app}/interfaces/index.d.ts +6 -6
  106. package/{app → package/app}/interfaces/items/autocomplete-chips.interface.d.ts +15 -15
  107. package/{app → package/app}/interfaces/items/autocomplete.interface.d.ts +9 -9
  108. package/{app → package/app}/interfaces/items/base.interface.d.ts +29 -29
  109. package/{app → package/app}/interfaces/items/checkbox.interface.d.ts +7 -7
  110. package/{app → package/app}/interfaces/items/chips.interface.d.ts +6 -6
  111. package/{app → package/app}/interfaces/items/date-range.interface.d.ts +8 -8
  112. package/{app → package/app}/interfaces/items/date.interface.d.ts +7 -7
  113. package/{app → package/app}/interfaces/items/range.interface.d.ts +13 -13
  114. package/{app → package/app}/interfaces/items/select.interface.d.ts +20 -20
  115. package/{app → package/app}/interfaces/items/text.interface.d.ts +9 -9
  116. package/{app → package/app}/interfaces/items/week.interface.d.ts +7 -7
  117. package/{app → package/app}/interfaces/saved-filters.interface.d.ts +18 -18
  118. package/{app → package/app}/interfaces/update-filter-item.interface.d.ts +4 -4
  119. package/{app → package/app}/models/action-menu-item.model.d.ts +23 -23
  120. package/{app → package/app}/models/action.model.d.ts +54 -54
  121. package/{app → package/app}/models/filter-config.d.ts +31 -31
  122. package/{app → package/app}/models/items/autocomplete/base-autocomplete-item.d.ts +12 -12
  123. package/{app → package/app}/models/items/autocomplete-chips-item.d.ts +20 -20
  124. package/{app → package/app}/models/items/autocomplete-item.d.ts +11 -11
  125. package/{app → package/app}/models/items/base-item.d.ts +80 -80
  126. package/{app → package/app}/models/items/checkbox-item.d.ts +17 -17
  127. package/{app → package/app}/models/items/chips-item.d.ts +18 -18
  128. package/{app → package/app}/models/items/date/base-date-item.d.ts +14 -14
  129. package/{app → package/app}/models/items/date-item.d.ts +8 -8
  130. package/{app → package/app}/models/items/date-range/base-date-range-item.d.ts +21 -21
  131. package/{app → package/app}/models/items/date-range-item.d.ts +6 -6
  132. package/{app → package/app}/models/items/date-time-item.d.ts +7 -7
  133. package/{app → package/app}/models/items/date-time-range-item.d.ts +6 -6
  134. package/{app → package/app}/models/items/range-item.d.ts +23 -23
  135. package/{app → package/app}/models/items/select/base-select-item.d.ts +13 -13
  136. package/{app → package/app}/models/items/select/multiple-select-item.d.ts +14 -14
  137. package/{app → package/app}/models/items/select/simple-select-item.d.ts +14 -14
  138. package/{app → package/app}/models/items/select-item.d.ts +8 -8
  139. package/{app → package/app}/models/items/text-item.d.ts +15 -15
  140. package/{app → package/app}/models/items/week-item.d.ts +18 -18
  141. package/{app → package/app}/pipes/remove-isolate-value.pipe.d.ts +8 -8
  142. package/{app → package/app}/providers/filter-meta.d.ts +5 -5
  143. package/{app → package/app}/services/external-params/persistance-params-controller.service.d.ts +22 -22
  144. package/{app → package/app}/services/external-params/query-params-controller.service.d.ts +22 -22
  145. package/{app → package/app}/services/external-params/saved-filters-controller.service.d.ts +40 -40
  146. package/{app → package/app}/services/external-params-controller.service.d.ts +42 -42
  147. package/{app → package/app}/services/filter-overlay.service.d.ts +36 -36
  148. package/{app → package/app}/services/focus-controller.service.d.ts +18 -18
  149. package/{app → package/app}/services/items-store.service.d.ts +69 -69
  150. package/{esm2020 → package/esm2020}/app/classes/actions-controller.mjs +126 -126
  151. package/{esm2020 → package/esm2020}/app/components/action-button/action-button.component.mjs +21 -21
  152. package/{esm2020 → package/esm2020}/app/components/action-kebab-actions/action-kebab-actions.component.mjs +16 -16
  153. package/{esm2020 → package/esm2020}/app/components/actions/actions.component.mjs +41 -41
  154. package/{esm2020 → package/esm2020}/app/components/filter/filter.component.mjs +613 -613
  155. package/{esm2020 → package/esm2020}/app/components/filter-chip/filter-chip.component.mjs +85 -85
  156. package/{esm2020 → package/esm2020}/app/components/filter-chip-content/filter-chip-content.component.mjs +78 -78
  157. package/{esm2020 → package/esm2020}/app/components/filter-chips/filter-chips.component.mjs +18 -18
  158. package/{esm2020 → package/esm2020}/app/components/filter-drawer/filter-drawer.component.mjs +70 -70
  159. package/{esm2020 → package/esm2020}/app/components/filter-drawer-actions/filter-drawer-actions.component.mjs +40 -40
  160. package/{esm2020 → package/esm2020}/app/components/filters-item/autocomplete/autocomplete.component.mjs +26 -26
  161. package/{esm2020 → package/esm2020}/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +41 -41
  162. package/{esm2020 → package/esm2020}/app/components/filters-item/base-item/base-item.component.mjs +62 -62
  163. package/{esm2020 → package/esm2020}/app/components/filters-item/checkbox/checkbox.component.mjs +20 -20
  164. package/{esm2020 → package/esm2020}/app/components/filters-item/chips/chips.component.mjs +27 -27
  165. package/{esm2020 → package/esm2020}/app/components/filters-item/date/date.component.mjs +42 -42
  166. package/{esm2020 → package/esm2020}/app/components/filters-item/date-range/date-range.component.mjs +33 -33
  167. package/{esm2020 → package/esm2020}/app/components/filters-item/filter-item.component.mjs +79 -79
  168. package/{esm2020 → package/esm2020}/app/components/filters-item/range/range.component.mjs +44 -44
  169. package/{esm2020 → package/esm2020}/app/components/filters-item/select/backdrop/backdrop.component.mjs +11 -11
  170. package/{esm2020 → package/esm2020}/app/components/filters-item/select/groups/groups.component.mjs +29 -29
  171. package/{esm2020 → package/esm2020}/app/components/filters-item/select/multiple/multiple.component.mjs +56 -56
  172. package/{esm2020 → package/esm2020}/app/components/filters-item/select/select.component.mjs +50 -50
  173. package/{esm2020 → package/esm2020}/app/components/filters-item/select/simple/simple.component.mjs +42 -42
  174. package/package/esm2020/app/components/filters-item/text/text.component.mjs +49 -0
  175. package/{esm2020 → package/esm2020}/app/components/filters-item/week/week.component.mjs +24 -24
  176. package/{esm2020 → package/esm2020}/app/components/saved-filter/index.mjs +3 -3
  177. package/{esm2020 → package/esm2020}/app/components/saved-filter/saved-filter-edit/index.mjs +1 -1
  178. package/{esm2020 → package/esm2020}/app/components/saved-filter/saved-filter-edit/saved-filter-edit.component.mjs +49 -49
  179. package/{esm2020 → package/esm2020}/app/components/saved-filter/saved-filter-manage/index.mjs +1 -1
  180. package/{esm2020 → package/esm2020}/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.mjs +39 -39
  181. package/{esm2020 → package/esm2020}/app/components/saved-filter/saved-filters-menu/index.mjs +1 -1
  182. package/{esm2020 → package/esm2020}/app/components/saved-filter/saved-filters-menu/saved-filters-menu.component.mjs +51 -51
  183. package/{esm2020 → package/esm2020}/app/consts/query-param-delimiter.mjs +1 -1
  184. package/{esm2020 → package/esm2020}/app/directives/focus-to-item/focus-to-item.directive.mjs +129 -129
  185. package/{esm2020 → package/esm2020}/app/directives/status-bar/status-bar.directive.mjs +15 -15
  186. package/{esm2020 → package/esm2020}/app/enums/action-mode.enum.mjs +7 -7
  187. package/{esm2020 → package/esm2020}/app/enums/action-type.enum.mjs +11 -11
  188. package/{esm2020 → package/esm2020}/app/enums/button-style.mjs +10 -10
  189. package/{esm2020 → package/esm2020}/app/enums/index.mjs +6 -6
  190. package/{esm2020 → package/esm2020}/app/enums/item-date-mode.enum.mjs +6 -6
  191. package/{esm2020 → package/esm2020}/app/enums/item-type.enum.mjs +16 -16
  192. package/{esm2020 → package/esm2020}/app/enums/picker-view-type.enum.mjs +8 -8
  193. package/{esm2020 → package/esm2020}/app/fs-filter.module.mjs +261 -263
  194. package/{esm2020 → package/esm2020}/app/helpers/build-query-params.mjs +32 -32
  195. package/{esm2020 → package/esm2020}/app/helpers/compare.mjs +37 -37
  196. package/{esm2020 → package/esm2020}/app/helpers/create-filter-item.mjs +54 -54
  197. package/{esm2020 → package/esm2020}/app/helpers/find-value.mjs +12 -12
  198. package/{esm2020 → package/esm2020}/app/helpers/get-range-name.mjs +8 -8
  199. package/{esm2020 → package/esm2020}/app/helpers/parse-date.mjs +7 -7
  200. package/{esm2020 → package/esm2020}/app/helpers/parse-item-value-from-stored.mjs +80 -80
  201. package/{esm2020 → package/esm2020}/app/helpers/query-param-transformers.mjs +8 -8
  202. package/{esm2020 → package/esm2020}/app/helpers/restore-items.mjs +48 -48
  203. package/{esm2020 → package/esm2020}/app/injectors/filter-config.mjs +2 -2
  204. package/{esm2020 → package/esm2020}/app/injectors/filter-drawer-data.mjs +2 -2
  205. package/{esm2020 → package/esm2020}/app/injectors/filter-drawer-overlay.mjs +2 -2
  206. package/{esm2020 → package/esm2020}/app/interfaces/action.interface.mjs +1 -1
  207. package/{esm2020 → package/esm2020}/app/interfaces/config.interface.mjs +1 -1
  208. package/{esm2020 → package/esm2020}/app/interfaces/external-params.interface.mjs +1 -1
  209. package/{esm2020 → package/esm2020}/app/interfaces/filter.interface.mjs +1 -1
  210. package/{esm2020 → package/esm2020}/app/interfaces/index.mjs +6 -6
  211. package/{esm2020 → package/esm2020}/app/interfaces/items/autocomplete-chips.interface.mjs +1 -1
  212. package/{esm2020 → package/esm2020}/app/interfaces/items/autocomplete.interface.mjs +1 -1
  213. package/{esm2020 → package/esm2020}/app/interfaces/items/base.interface.mjs +1 -1
  214. package/{esm2020 → package/esm2020}/app/interfaces/items/checkbox.interface.mjs +1 -1
  215. package/{esm2020 → package/esm2020}/app/interfaces/items/chips.interface.mjs +1 -1
  216. package/{esm2020 → package/esm2020}/app/interfaces/items/date-range.interface.mjs +1 -1
  217. package/{esm2020 → package/esm2020}/app/interfaces/items/date.interface.mjs +1 -1
  218. package/{esm2020 → package/esm2020}/app/interfaces/items/range.interface.mjs +1 -1
  219. package/{esm2020 → package/esm2020}/app/interfaces/items/select.interface.mjs +1 -1
  220. package/{esm2020 → package/esm2020}/app/interfaces/items/text.interface.mjs +1 -1
  221. package/{esm2020 → package/esm2020}/app/interfaces/items/week.interface.mjs +1 -1
  222. package/{esm2020 → package/esm2020}/app/interfaces/saved-filters.interface.mjs +1 -1
  223. package/{esm2020 → package/esm2020}/app/interfaces/update-filter-item.interface.mjs +1 -1
  224. package/{esm2020 → package/esm2020}/app/models/action-menu-item.model.mjs +66 -66
  225. package/{esm2020 → package/esm2020}/app/models/action.model.mjs +129 -129
  226. package/{esm2020 → package/esm2020}/app/models/filter-config.mjs +66 -66
  227. package/{esm2020 → package/esm2020}/app/models/items/autocomplete/base-autocomplete-item.mjs +13 -13
  228. package/{esm2020 → package/esm2020}/app/models/items/autocomplete-chips-item.mjs +60 -60
  229. package/{esm2020 → package/esm2020}/app/models/items/autocomplete-item.mjs +32 -32
  230. package/{esm2020 → package/esm2020}/app/models/items/base-item.mjs +233 -233
  231. package/{esm2020 → package/esm2020}/app/models/items/checkbox-item.mjs +49 -49
  232. package/{esm2020 → package/esm2020}/app/models/items/chips-item.mjs +88 -88
  233. package/{esm2020 → package/esm2020}/app/models/items/date/base-date-item.mjs +47 -47
  234. package/{esm2020 → package/esm2020}/app/models/items/date-item.mjs +18 -18
  235. package/{esm2020 → package/esm2020}/app/models/items/date-range/base-date-range-item.mjs +134 -134
  236. package/{esm2020 → package/esm2020}/app/models/items/date-range-item.mjs +6 -6
  237. package/{esm2020 → package/esm2020}/app/models/items/date-time-item.mjs +9 -9
  238. package/{esm2020 → package/esm2020}/app/models/items/date-time-range-item.mjs +6 -6
  239. package/{esm2020 → package/esm2020}/app/models/items/range-item.mjs +82 -82
  240. package/{esm2020 → package/esm2020}/app/models/items/select/base-select-item.mjs +36 -36
  241. package/{esm2020 → package/esm2020}/app/models/items/select/multiple-select-item.mjs +87 -87
  242. package/{esm2020 → package/esm2020}/app/models/items/select/simple-select-item.mjs +65 -65
  243. package/{esm2020 → package/esm2020}/app/models/items/select-item.mjs +10 -10
  244. package/{esm2020 → package/esm2020}/app/models/items/text-item.mjs +33 -33
  245. package/{esm2020 → package/esm2020}/app/models/items/week-item.mjs +93 -93
  246. package/{esm2020 → package/esm2020}/app/pipes/remove-isolate-value.pipe.mjs +20 -20
  247. package/{esm2020 → package/esm2020}/app/providers/filter-meta.mjs +9 -9
  248. package/{esm2020 → package/esm2020}/app/services/external-params/persistance-params-controller.service.mjs +57 -57
  249. package/{esm2020 → package/esm2020}/app/services/external-params/query-params-controller.service.mjs +61 -61
  250. package/{esm2020 → package/esm2020}/app/services/external-params/saved-filters-controller.service.mjs +162 -162
  251. package/{esm2020 → package/esm2020}/app/services/external-params-controller.service.mjs +178 -178
  252. package/{esm2020 → package/esm2020}/app/services/filter-overlay.service.mjs +121 -121
  253. package/{esm2020 → package/esm2020}/app/services/focus-controller.service.mjs +29 -29
  254. package/{esm2020 → package/esm2020}/app/services/items-store.service.mjs +344 -344
  255. package/{esm2020 → package/esm2020}/firestitch-filter.mjs +4 -4
  256. package/{esm2020 → package/esm2020}/public_api.mjs +35 -35
  257. package/{fesm2015 → package/fesm2015}/firestitch-filter.mjs +4383 -4385
  258. package/package/fesm2015/firestitch-filter.mjs.map +1 -0
  259. package/{fesm2020 → package/fesm2020}/firestitch-filter.mjs +4372 -4374
  260. package/package/fesm2020/firestitch-filter.mjs.map +1 -0
  261. package/{firestitch-filter.d.ts → package/index.d.ts} +5 -5
  262. package/package/package.json +56 -0
  263. package/{public_api.d.ts → package/public_api.d.ts} +40 -40
  264. package/package/styles.scss +0 -0
  265. package/package.json +79 -22
  266. package/tsconfig.compodoc.json +12 -0
  267. package/tsconfig.json +10 -0
  268. package/tslint.json +8 -0
  269. package/esm2020/app/components/filters-item/text/text.component.mjs +0 -49
  270. package/fesm2015/firestitch-filter.mjs.map +0 -1
  271. package/fesm2020/firestitch-filter.mjs.map +0 -1
  272. /package/{styles.scss → README.MD} +0 -0
@@ -1,122 +1,122 @@
1
- import { Inject, Injectable, Injector } from '@angular/core';
2
- import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
3
- import { ComponentPortal, PortalInjector } from '@angular/cdk/portal';
4
- import { Subject } from 'rxjs';
5
- import { filter, takeUntil } from 'rxjs/operators';
6
- import { HtmlClassRenderer } from '@firestitch/html';
7
- import { FilterDrawerComponent } from '../components/filter-drawer/filter-drawer.component';
8
- import { FILTER_DRAWER_DATA } from '../injectors/filter-drawer-data';
9
- import { FILTER_DRAWER_OVERLAY } from '../injectors/filter-drawer-overlay';
10
- import { FS_FILTER_META } from '../providers/filter-meta';
11
- import { FocusControllerService } from './focus-controller.service';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/cdk/overlay";
14
- import * as i2 from "./focus-controller.service";
15
- import * as i3 from "@firestitch/html";
16
- export class FsFilterOverlayService {
17
- constructor(_filterMeta, _injector, _overlay, _focusController, _htmlClassRenderer) {
18
- this._filterMeta = _filterMeta;
19
- this._injector = _injector;
20
- this._overlay = _overlay;
21
- this._focusController = _focusController;
22
- this._htmlClassRenderer = _htmlClassRenderer;
23
- this.detach$ = new Subject();
24
- this.attach$ = new Subject();
25
- this._destroy$ = new Subject();
26
- this._openWhenChipClicked();
27
- }
28
- get isOpened() {
29
- return !!this._overlayRef;
30
- }
31
- setClearFn(fn) {
32
- this._clearFn = fn;
33
- }
34
- setDoneFn(fn) {
35
- this._doneFn = fn;
36
- }
37
- close() {
38
- if (this._overlayRef) {
39
- this._overlayRef.detach();
40
- this._overlayRef = null;
41
- this._removeFilterClass();
42
- }
43
- }
44
- open() {
45
- this._overlayRef = this._createOverlay();
46
- this._overlayRef.backdropClick()
47
- .pipe(takeUntil(this._destroy$))
48
- .subscribe(() => {
49
- this._overlayRef.detach();
50
- });
51
- this._overlayRef.detachments()
52
- .pipe(takeUntil(this._destroy$))
53
- .subscribe(() => {
54
- this.detach$.next();
55
- });
56
- this._overlayRef.attachments()
57
- .pipe(takeUntil(this._destroy$))
58
- .subscribe(() => {
59
- this.attach$.next();
60
- });
61
- this._addFilterClass();
62
- return this._openPortalPreview();
63
- }
64
- ngOnDestroy() {
65
- this._destroy$.next();
66
- this._destroy$.complete();
67
- }
68
- _createOverlay() {
69
- const overlayConfig = new OverlayConfig({
70
- hasBackdrop: true,
71
- backdropClass: 'fs-filter-backdrop',
72
- });
73
- return this._overlay.create(overlayConfig);
74
- }
75
- _openPortalPreview() {
76
- const data = {
77
- done: this._doneFn,
78
- clear: this._clearFn,
79
- };
80
- const injector = this._createInjector(this._injector, data, this._overlayRef);
81
- const containerPortal = new ComponentPortal(FilterDrawerComponent, undefined, injector);
82
- const containerRef = this._overlayRef.attach(containerPortal);
83
- return containerRef.instance;
84
- }
85
- _createInjector(parentInjector, data, overlayRef) {
86
- const injectionTokens = new WeakMap([
87
- [FILTER_DRAWER_DATA, data],
88
- [FILTER_DRAWER_OVERLAY, overlayRef],
89
- ]);
90
- return new PortalInjector(parentInjector, injectionTokens);
91
- }
92
- _removeFilterClass() {
93
- this._filterMeta.openedFilters--;
94
- if (this._filterMeta.openedFilters === 0) {
95
- this._htmlClassRenderer.removeClass('fs-filter-open');
96
- }
97
- }
98
- _addFilterClass() {
99
- this._filterMeta.openedFilters++;
100
- if (this._filterMeta.openedFilters === 1) {
101
- this._htmlClassRenderer.addClass('fs-filter-open');
102
- }
103
- }
104
- _openWhenChipClicked() {
105
- this._focusController.focusOn$
106
- .pipe(filter((v) => !!v), takeUntil(this._destroy$))
107
- .subscribe(() => {
108
- if (!this.isOpened) {
109
- this.open();
110
- }
111
- });
112
- }
113
- }
114
- FsFilterOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterOverlayService, deps: [{ token: FS_FILTER_META }, { token: i0.Injector }, { token: i1.Overlay }, { token: i2.FocusControllerService }, { token: i3.HtmlClassRenderer }], target: i0.ɵɵFactoryTarget.Injectable });
115
- FsFilterOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterOverlayService });
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterOverlayService, decorators: [{
117
- type: Injectable
118
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
119
- type: Inject,
120
- args: [FS_FILTER_META]
121
- }] }, { type: i0.Injector }, { type: i1.Overlay }, { type: i2.FocusControllerService }, { type: i3.HtmlClassRenderer }]; } });
1
+ import { Inject, Injectable, Injector } from '@angular/core';
2
+ import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
3
+ import { ComponentPortal, PortalInjector } from '@angular/cdk/portal';
4
+ import { Subject } from 'rxjs';
5
+ import { filter, takeUntil } from 'rxjs/operators';
6
+ import { HtmlClassRenderer } from '@firestitch/html';
7
+ import { FilterDrawerComponent } from '../components/filter-drawer/filter-drawer.component';
8
+ import { FILTER_DRAWER_DATA } from '../injectors/filter-drawer-data';
9
+ import { FILTER_DRAWER_OVERLAY } from '../injectors/filter-drawer-overlay';
10
+ import { FS_FILTER_META } from '../providers/filter-meta';
11
+ import { FocusControllerService } from './focus-controller.service';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/cdk/overlay";
14
+ import * as i2 from "./focus-controller.service";
15
+ import * as i3 from "@firestitch/html";
16
+ export class FsFilterOverlayService {
17
+ constructor(_filterMeta, _injector, _overlay, _focusController, _htmlClassRenderer) {
18
+ this._filterMeta = _filterMeta;
19
+ this._injector = _injector;
20
+ this._overlay = _overlay;
21
+ this._focusController = _focusController;
22
+ this._htmlClassRenderer = _htmlClassRenderer;
23
+ this.detach$ = new Subject();
24
+ this.attach$ = new Subject();
25
+ this._destroy$ = new Subject();
26
+ this._openWhenChipClicked();
27
+ }
28
+ get isOpened() {
29
+ return !!this._overlayRef;
30
+ }
31
+ setClearFn(fn) {
32
+ this._clearFn = fn;
33
+ }
34
+ setDoneFn(fn) {
35
+ this._doneFn = fn;
36
+ }
37
+ close() {
38
+ if (this._overlayRef) {
39
+ this._overlayRef.detach();
40
+ this._overlayRef = null;
41
+ this._removeFilterClass();
42
+ }
43
+ }
44
+ open() {
45
+ this._overlayRef = this._createOverlay();
46
+ this._overlayRef.backdropClick()
47
+ .pipe(takeUntil(this._destroy$))
48
+ .subscribe(() => {
49
+ this._overlayRef.detach();
50
+ });
51
+ this._overlayRef.detachments()
52
+ .pipe(takeUntil(this._destroy$))
53
+ .subscribe(() => {
54
+ this.detach$.next();
55
+ });
56
+ this._overlayRef.attachments()
57
+ .pipe(takeUntil(this._destroy$))
58
+ .subscribe(() => {
59
+ this.attach$.next();
60
+ });
61
+ this._addFilterClass();
62
+ return this._openPortalPreview();
63
+ }
64
+ ngOnDestroy() {
65
+ this._destroy$.next();
66
+ this._destroy$.complete();
67
+ }
68
+ _createOverlay() {
69
+ const overlayConfig = new OverlayConfig({
70
+ hasBackdrop: true,
71
+ backdropClass: 'fs-filter-backdrop',
72
+ });
73
+ return this._overlay.create(overlayConfig);
74
+ }
75
+ _openPortalPreview() {
76
+ const data = {
77
+ done: this._doneFn,
78
+ clear: this._clearFn,
79
+ };
80
+ const injector = this._createInjector(this._injector, data, this._overlayRef);
81
+ const containerPortal = new ComponentPortal(FilterDrawerComponent, undefined, injector);
82
+ const containerRef = this._overlayRef.attach(containerPortal);
83
+ return containerRef.instance;
84
+ }
85
+ _createInjector(parentInjector, data, overlayRef) {
86
+ const injectionTokens = new WeakMap([
87
+ [FILTER_DRAWER_DATA, data],
88
+ [FILTER_DRAWER_OVERLAY, overlayRef],
89
+ ]);
90
+ return new PortalInjector(parentInjector, injectionTokens);
91
+ }
92
+ _removeFilterClass() {
93
+ this._filterMeta.openedFilters--;
94
+ if (this._filterMeta.openedFilters === 0) {
95
+ this._htmlClassRenderer.removeClass('fs-filter-open');
96
+ }
97
+ }
98
+ _addFilterClass() {
99
+ this._filterMeta.openedFilters++;
100
+ if (this._filterMeta.openedFilters === 1) {
101
+ this._htmlClassRenderer.addClass('fs-filter-open');
102
+ }
103
+ }
104
+ _openWhenChipClicked() {
105
+ this._focusController.focusOn$
106
+ .pipe(filter((v) => !!v), takeUntil(this._destroy$))
107
+ .subscribe(() => {
108
+ if (!this.isOpened) {
109
+ this.open();
110
+ }
111
+ });
112
+ }
113
+ }
114
+ FsFilterOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FsFilterOverlayService, deps: [{ token: FS_FILTER_META }, { token: i0.Injector }, { token: i1.Overlay }, { token: i2.FocusControllerService }, { token: i3.HtmlClassRenderer }], target: i0.ɵɵFactoryTarget.Injectable });
115
+ FsFilterOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FsFilterOverlayService });
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FsFilterOverlayService, decorators: [{
117
+ type: Injectable
118
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
119
+ type: Inject,
120
+ args: [FS_FILTER_META]
121
+ }] }, { type: i0.Injector }, { type: i1.Overlay }, { type: i2.FocusControllerService }, { type: i3.HtmlClassRenderer }]; } });
122
122
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW92ZXJsYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvZmlsdGVyLW92ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUlwRSxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLFlBQ2tDLFdBQXlCLEVBQ2pELFNBQW1CLEVBQ25CLFFBQWlCLEVBQ2pCLGdCQUF3QyxFQUN4QyxrQkFBcUM7UUFKYixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUNqRCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN4Qyx1QkFB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QUNQLENBQUM7O21IQXhJVSxzQkFBc0Isa0JBWXZCLGNBQWM7dUhBWmIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVU7OzBCQWFOLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWxJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSHRtbENsYXNzUmVuZGVyZXIgfSBmcm9tICdAZmlyZXN0aXRjaC9odG1sJztcblxuaW1wb3J0IHsgRmlsdGVyRHJhd2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWx0ZXItZHJhd2VyL2ZpbHRlci1kcmF3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZJTFRFUl9EUkFXRVJfREFUQSB9IGZyb20gJy4uL2luamVjdG9ycy9maWx0ZXItZHJhd2VyLWRhdGEnO1xuaW1wb3J0IHsgRklMVEVSX0RSQVdFUl9PVkVSTEFZIH0gZnJvbSAnLi4vaW5qZWN0b3JzL2ZpbHRlci1kcmF3ZXItb3ZlcmxheSc7XG5pbXBvcnQgeyBGU19GSUxURVJfTUVUQSwgRnNGaWx0ZXJNZXRhIH0gZnJvbSAnLi4vcHJvdmlkZXJzL2ZpbHRlci1tZXRhJztcblxuaW1wb3J0IHsgRm9jdXNDb250cm9sbGVyU2VydmljZSB9IGZyb20gJy4vZm9jdXMtY29udHJvbGxlci5zZXJ2aWNlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRnNGaWx0ZXJPdmVybGF5U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGRldGFjaCQgPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgYXR0YWNoJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfY2xlYXJGbjogRnVuY3Rpb247XG4gIHByaXZhdGUgX2RvbmVGbjogRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRlNfRklMVEVSX01FVEEpIHByaXZhdGUgX2ZpbHRlck1ldGE6IEZzRmlsdGVyTWV0YSxcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIF9mb2N1c0NvbnRyb2xsZXI6IEZvY3VzQ29udHJvbGxlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfaHRtbENsYXNzUmVuZGVyZXI6IEh0bWxDbGFzc1JlbmRlcmVyLFxuICApIHtcbiAgICB0aGlzLl9vcGVuV2hlbkNoaXBDbGlja2VkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3BlbmVkKCkge1xuICAgIHJldHVybiAhIXRoaXMuX292ZXJsYXlSZWY7XG4gIH1cblxuICBwdWJsaWMgc2V0Q2xlYXJGbihmbjogRnVuY3Rpb24pIHtcbiAgICB0aGlzLl9jbGVhckZuID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RG9uZUZuKGZuOiBGdW5jdGlvbikge1xuICAgIHRoaXMuX2RvbmVGbiA9IGZuO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IG51bGw7XG5cbiAgICAgIHRoaXMuX3JlbW92ZUZpbHRlckNsYXNzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW4oKSB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXkoKTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaG1lbnRzKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGV0YWNoJC5uZXh0KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYuYXR0YWNobWVudHMoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5hdHRhY2gkLm5leHQoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fYWRkRmlsdGVyQ2xhc3MoKTtcblxuICAgIHJldHVybiB0aGlzLl9vcGVuUG9ydGFsUHJldmlldygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlT3ZlcmxheSgpIHtcbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnZnMtZmlsdGVyLWJhY2tkcm9wJyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLl9vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgX29wZW5Qb3J0YWxQcmV2aWV3KCkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBkb25lOiB0aGlzLl9kb25lRm4sXG4gICAgICBjbGVhcjogdGhpcy5fY2xlYXJGbixcbiAgICB9O1xuICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fY3JlYXRlSW5qZWN0b3IodGhpcy5faW5qZWN0b3IsIGRhdGEsIHRoaXMuX292ZXJsYXlSZWYpO1xuICAgIGNvbnN0IGNvbnRhaW5lclBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoRmlsdGVyRHJhd2VyQ29tcG9uZW50LCB1bmRlZmluZWQsIGluamVjdG9yKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaDxGaWx0ZXJEcmF3ZXJDb21wb25lbnQ+KGNvbnRhaW5lclBvcnRhbCk7XG5cbiAgICByZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3IocGFyZW50SW5qZWN0b3IsIGRhdGEsIG92ZXJsYXlSZWYpIHtcbiAgICBjb25zdCBpbmplY3Rpb25Ub2tlbnMgPSBuZXcgV2Vha01hcDxhbnksIGFueT4oW1xuICAgICAgW0ZJTFRFUl9EUkFXRVJfREFUQSwgZGF0YV0sXG4gICAgICBbRklMVEVSX0RSQVdFUl9PVkVSTEFZLCBvdmVybGF5UmVmXSxcbiAgICBdKTtcblxuICAgIHJldHVybiBuZXcgUG9ydGFsSW5qZWN0b3IocGFyZW50SW5qZWN0b3IsIGluamVjdGlvblRva2Vucyk7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVGaWx0ZXJDbGFzcygpIHtcbiAgICB0aGlzLl9maWx0ZXJNZXRhLm9wZW5lZEZpbHRlcnMtLTtcblxuICAgIGlmICh0aGlzLl9maWx0ZXJNZXRhLm9wZW5lZEZpbHRlcnMgPT09IDApIHtcbiAgICAgIHRoaXMuX2h0bWxDbGFzc1JlbmRlcmVyLnJlbW92ZUNsYXNzKCdmcy1maWx0ZXItb3BlbicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FkZEZpbHRlckNsYXNzKCkge1xuICAgIHRoaXMuX2ZpbHRlck1ldGEub3BlbmVkRmlsdGVycysrO1xuXG4gICAgaWYgKHRoaXMuX2ZpbHRlck1ldGEub3BlbmVkRmlsdGVycyA9PT0gMSkge1xuICAgICAgdGhpcy5faHRtbENsYXNzUmVuZGVyZXIuYWRkQ2xhc3MoJ2ZzLWZpbHRlci1vcGVuJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbldoZW5DaGlwQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c0NvbnRyb2xsZXIuZm9jdXNPbiRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHYpID0+ICEhdiksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlbmVkKSB7XG4gICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,30 +1,30 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { filter, tap } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export class FocusControllerService {
6
- constructor() {
7
- this._focusOn = new BehaviorSubject(null);
8
- }
9
- get focusOn$() {
10
- return this._focusOn.asObservable();
11
- }
12
- click(item, type = null) {
13
- this._focusOn.next({ item, type });
14
- }
15
- listenFocusFor$(targetItem, targetType = null) {
16
- return this._focusOn
17
- .pipe(filter((event) => !!event), filter(({ item, type }) => {
18
- return targetItem === item && targetType === type;
19
- }), tap(() => this.clearFocus()));
20
- }
21
- clearFocus() {
22
- this._focusOn.next(null);
23
- }
24
- }
25
- FocusControllerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FocusControllerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
- FocusControllerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FocusControllerService });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FocusControllerService, decorators: [{
28
- type: Injectable
29
- }], ctorParameters: function () { return []; } });
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { filter, tap } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class FocusControllerService {
6
+ constructor() {
7
+ this._focusOn = new BehaviorSubject(null);
8
+ }
9
+ get focusOn$() {
10
+ return this._focusOn.asObservable();
11
+ }
12
+ click(item, type = null) {
13
+ this._focusOn.next({ item, type });
14
+ }
15
+ listenFocusFor$(targetItem, targetType = null) {
16
+ return this._focusOn
17
+ .pipe(filter((event) => !!event), filter(({ item, type }) => {
18
+ return targetItem === item && targetType === type;
19
+ }), tap(() => this.clearFocus()));
20
+ }
21
+ clearFocus() {
22
+ this._focusOn.next(null);
23
+ }
24
+ }
25
+ FocusControllerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FocusControllerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
+ FocusControllerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FocusControllerService });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FocusControllerService, decorators: [{
28
+ type: Injectable
29
+ }], ctorParameters: function () { return []; } });
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtY29udHJvbGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlcy9mb2N1cy1jb250cm9sbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTdDLE1BQU0sT0FBTyxzQkFBc0I7SUFJakM7UUFGUSxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQThDLElBQUksQ0FBQyxDQUFDO0lBRTNFLENBQUM7SUFFaEIsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQW1CLEVBQUUsT0FBc0IsSUFBSTtRQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBeUIsRUFBRSxhQUE0QixJQUFJO1FBQ2hGLE9BQU8sSUFBSSxDQUFDLFFBQVE7YUFDakIsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUMxQixNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ3hCLE9BQU8sVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDO1FBQ3BELENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FDN0IsQ0FBQTtJQUNMLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7bUhBM0JVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXNlSXRlbSB9IGZyb20gJy4uL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0nO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb2N1c0NvbnRyb2xsZXJTZXJ2aWNlIHtcblxuICBwcml2YXRlIF9mb2N1c09uID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IGl0ZW06IEJhc2VJdGVtPGFueT4sIHR5cGU6ICdmcm9tJyB8ICd0byd9PihudWxsKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIGdldCBmb2N1c09uJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNPbi5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGljayhpdGVtOiBCYXNlSXRlbTxhbnk+LCB0eXBlOiAnZnJvbScgfCAndG8nID0gbnVsbCkge1xuICAgIHRoaXMuX2ZvY3VzT24ubmV4dCh7IGl0ZW0sIHR5cGUgfSlcbiAgfVxuXG4gIHB1YmxpYyBsaXN0ZW5Gb2N1c0ZvciQodGFyZ2V0SXRlbTogQmFzZUl0ZW08YW55PiwgdGFyZ2V0VHlwZTogJ2Zyb20nIHwgJ3RvJyA9IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNPblxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICEhZXZlbnQpLFxuICAgICAgICBmaWx0ZXIoKHsgaXRlbSwgdHlwZSB9KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRhcmdldEl0ZW0gPT09IGl0ZW0gJiYgdGFyZ2V0VHlwZSA9PT0gdHlwZTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmNsZWFyRm9jdXMoKSksXG4gICAgICApXG4gIH1cblxuICBwdWJsaWMgY2xlYXJGb2N1cygpIHtcbiAgICB0aGlzLl9mb2N1c09uLm5leHQobnVsbCk7XG4gIH1cbn1cbiJdfQ==