@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,33 +1,33 @@
1
- import { clone } from 'lodash-es';
2
- import { BaseAutocompleteItem } from './autocomplete/base-autocomplete-item';
3
- export class AutocompleteItem extends BaseAutocompleteItem {
4
- static create(config, filter) {
5
- return new AutocompleteItem(config, null, filter);
6
- }
7
- get value() {
8
- let value = clone(this.model);
9
- if (!this.model || this.model.value === undefined) {
10
- return undefined;
11
- }
12
- value = this.model.value;
13
- return value;
14
- }
15
- get queryObject() {
16
- const value = this.value;
17
- const name = this.name;
18
- const params = {};
19
- params[name] = value;
20
- return params;
21
- }
22
- getChipsContent() {
23
- return this.model ? this.model.name : '';
24
- }
25
- _init() {
26
- //
27
- }
28
- _clearValue(defaultValue = undefined) {
29
- this.model = defaultValue ?? undefined;
30
- this.search = '';
31
- }
32
- }
1
+ import { clone } from 'lodash-es';
2
+ import { BaseAutocompleteItem } from './autocomplete/base-autocomplete-item';
3
+ export class AutocompleteItem extends BaseAutocompleteItem {
4
+ static create(config, filter) {
5
+ return new AutocompleteItem(config, null, filter);
6
+ }
7
+ get value() {
8
+ let value = clone(this.model);
9
+ if (!this.model || this.model.value === undefined) {
10
+ return undefined;
11
+ }
12
+ value = this.model.value;
13
+ return value;
14
+ }
15
+ get queryObject() {
16
+ const value = this.value;
17
+ const name = this.name;
18
+ const params = {};
19
+ params[name] = value;
20
+ return params;
21
+ }
22
+ getChipsContent() {
23
+ return this.model ? this.model.name : '';
24
+ }
25
+ _init() {
26
+ //
27
+ }
28
+ _clearValue(defaultValue = undefined) {
29
+ this.model = defaultValue ?? undefined;
30
+ this.search = '';
31
+ }
32
+ }
33
33
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZGVscy9pdGVtcy9hdXRvY29tcGxldGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBS2xDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzdFLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBbUQ7SUFFaEYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFxQyxFQUFFLE1BQXVCO1FBQ2pGLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUNqRCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUV6QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVsQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBRXJCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRVMsS0FBSztRQUNiLEVBQUU7SUFDSixDQUFDO0lBRVMsV0FBVyxDQUFDLGVBQXdCLFNBQVM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLElBQUksU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgY2xvbmUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgdHlwZSB7IEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0F1dG9jb21wbGV0ZUl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2l0ZW1zL2F1dG9jb21wbGV0ZS5pbnRlcmZhY2UnO1xuXG5pbXBvcnQgeyBCYXNlQXV0b2NvbXBsZXRlSXRlbSB9IGZyb20gJy4vYXV0b2NvbXBsZXRlL2Jhc2UtYXV0b2NvbXBsZXRlLWl0ZW0nO1xuXG5cbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVJdGVtIGV4dGVuZHMgQmFzZUF1dG9jb21wbGV0ZUl0ZW08SUZpbHRlckNvbmZpZ0F1dG9jb21wbGV0ZUl0ZW0+IHtcblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShjb25maWc6IElGaWx0ZXJDb25maWdBdXRvY29tcGxldGVJdGVtLCBmaWx0ZXI6IEZpbHRlckNvbXBvbmVudCkge1xuICAgIHJldHVybiBuZXcgQXV0b2NvbXBsZXRlSXRlbShjb25maWcsIG51bGwsIGZpbHRlcik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgIGxldCB2YWx1ZSA9IGNsb25lKHRoaXMubW9kZWwpO1xuXG4gICAgaWYgKCF0aGlzLm1vZGVsIHx8IHRoaXMubW9kZWwudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IHRoaXMubW9kZWwudmFsdWU7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5T2JqZWN0KCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lO1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuXG4gICAgcGFyYW1zW25hbWVdID0gdmFsdWU7XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldENoaXBzQ29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbCA/IHRoaXMubW9kZWwubmFtZSA6ICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9pbml0KCkge1xuICAgIC8vXG4gIH1cblxuICBwcm90ZWN0ZWQgX2NsZWFyVmFsdWUoZGVmYXVsdFZhbHVlOiB1bmtub3duID0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5tb2RlbCA9IGRlZmF1bHRWYWx1ZSA/PyB1bmRlZmluZWQ7XG4gICAgdGhpcy5zZWFyY2ggPSAnJztcbiAgfVxufVxuIl19
@@ -1,237 +1,237 @@
1
- import { BehaviorSubject, isObservable, Subject } from 'rxjs';
2
- import { finalize, take, takeUntil, tap, } from 'rxjs/operators';
3
- import { isFunction } from 'lodash-es';
4
- import { ItemType } from '../../enums/item-type.enum';
5
- export class BaseItem {
6
- constructor(itemConfig, _additionalConfig, _filter) {
7
- this._additionalConfig = _additionalConfig;
8
- this._filter = _filter;
9
- this._pendingValues = false;
10
- this._pendingDefaultValue = false;
11
- this._initializedValues = false;
12
- this._loading$ = new BehaviorSubject(false);
13
- this._value$ = new BehaviorSubject(null);
14
- this._valueChange$ = new Subject();
15
- this._values$ = new BehaviorSubject(null);
16
- this._destroy$ = new Subject();
17
- this._clear$ = new Subject();
18
- this._type = itemConfig.type;
19
- this._parseConfig(itemConfig);
20
- }
21
- get filter() {
22
- return this._filter;
23
- }
24
- get isTypeAutocomplete() {
25
- return this.type === ItemType.AutoComplete;
26
- }
27
- get isTypeAutocompleteChips() {
28
- return this.type === ItemType.AutoCompleteChips;
29
- }
30
- get isTypeChips() {
31
- return this.type === ItemType.Chips;
32
- }
33
- get isTypeCheckbox() {
34
- return this.type === ItemType.Checkbox;
35
- }
36
- get isTypeSelect() {
37
- return this.type === ItemType.Select;
38
- }
39
- get isTypeDate() {
40
- return this.type === ItemType.Date;
41
- }
42
- get isTypeDateRange() {
43
- return this.type === ItemType.DateRange;
44
- }
45
- get isTypeRange() {
46
- return this.type === ItemType.Range;
47
- }
48
- get isTypeDateTimeRange() {
49
- return this.type === ItemType.DateTimeRange;
50
- }
51
- get isTypeDateTime() {
52
- return this.type === ItemType.DateTime;
53
- }
54
- get isTypeKeyword() {
55
- return this.type === ItemType.Keyword;
56
- }
57
- get isChipVisible() {
58
- return !!this.model;
59
- }
60
- get destroy$() {
61
- return this._destroy$.asObservable();
62
- }
63
- get type() {
64
- return this._type;
65
- }
66
- get hasPendingValues() {
67
- return this._pendingValues;
68
- }
69
- get hasPendingDefaultValue() {
70
- return this._pendingDefaultValue;
71
- }
72
- get model() {
73
- return this._model;
74
- }
75
- set model(value) {
76
- this._setModel(value);
77
- this.valueChanged();
78
- }
79
- set values(values) {
80
- this._values$.next(values);
81
- }
82
- get values() {
83
- return this._values$.getValue();
84
- }
85
- get values$() {
86
- return this._values$.asObservable();
87
- }
88
- get valueChange$() {
89
- return this._valueChange$.asObservable();
90
- }
91
- get value$() {
92
- return this._value$.asObservable();
93
- }
94
- get clear$() {
95
- return this._clear$.asObservable();
96
- }
97
- get initialized() {
98
- return this._initialized;
99
- }
100
- get loading$() {
101
- return this._loading$.asObservable();
102
- }
103
- get loading() {
104
- return this._loading$.getValue();
105
- }
106
- set loading(value) {
107
- this._loading$.next(value);
108
- }
109
- get _initialized() {
110
- return !this._pendingDefaultValue && !this._pendingValues && this._initializedValues;
111
- }
112
- valueChanged() {
113
- this._value$.next(this.value);
114
- if (this.change) {
115
- this.change(this, this._filter);
116
- }
117
- if (this.initialized) {
118
- this._valueChange$.next();
119
- }
120
- }
121
- get queryObject() {
122
- const value = this.value;
123
- const name = this.name;
124
- const params = {};
125
- if (Array.isArray(value)) {
126
- params[this.name] = value.join(',');
127
- }
128
- else {
129
- params[name] = value;
130
- }
131
- return params;
132
- }
133
- get persistanceObject() {
134
- return this.queryObject;
135
- }
136
- loadDefaultValue() {
137
- this._pendingDefaultValue = true;
138
- return this.defaultValueFn()
139
- .pipe(tap((value) => {
140
- this.defaultValue = value;
141
- this._initDefaultModel();
142
- }), finalize(() => {
143
- this._pendingDefaultValue = false;
144
- }));
145
- }
146
- initValues(persistedValue) {
147
- this._initializedValues = false;
148
- this.persistedValue = persistedValue;
149
- this._initDefaultModel();
150
- const isAutocomplete = this.type === ItemType.AutoComplete || this.type === ItemType.AutoCompleteChips;
151
- if (this._valuesFn && !isAutocomplete) {
152
- const valuesResult = this._valuesFn(null, this._filter);
153
- if (isObservable(valuesResult)) {
154
- this._pendingValues = true;
155
- }
156
- else {
157
- this.values = valuesResult;
158
- this._init();
159
- this._initializedValues = true;
160
- }
161
- }
162
- else {
163
- this._init();
164
- this._initializedValues = true;
165
- }
166
- }
167
- loadAsyncValues(reload = true) {
168
- if (reload || (!this.loading && this.hasPendingValues)) {
169
- this.loading = true;
170
- this._valuesFn(null, this._filter)
171
- .pipe(take(1), takeUntil(this._destroy$))
172
- .subscribe((values) => {
173
- this.values = values;
174
- this._pendingValues = false;
175
- this.loading = false;
176
- this._init();
177
- this._validateModel();
178
- this._initializedValues = true;
179
- });
180
- }
181
- }
182
- clear(defaultValue = undefined) {
183
- if (this.isTypeRange || this.isTypeDateRange || this.isTypeDateTimeRange) {
1
+ import { BehaviorSubject, isObservable, Subject } from 'rxjs';
2
+ import { finalize, take, takeUntil, tap, } from 'rxjs/operators';
3
+ import { isFunction } from 'lodash-es';
4
+ import { ItemType } from '../../enums/item-type.enum';
5
+ export class BaseItem {
6
+ constructor(itemConfig, _additionalConfig, _filter) {
7
+ this._additionalConfig = _additionalConfig;
8
+ this._filter = _filter;
9
+ this._pendingValues = false;
10
+ this._pendingDefaultValue = false;
11
+ this._initializedValues = false;
12
+ this._loading$ = new BehaviorSubject(false);
13
+ this._value$ = new BehaviorSubject(null);
14
+ this._valueChange$ = new Subject();
15
+ this._values$ = new BehaviorSubject(null);
16
+ this._destroy$ = new Subject();
17
+ this._clear$ = new Subject();
18
+ this._type = itemConfig.type;
19
+ this._parseConfig(itemConfig);
20
+ }
21
+ get filter() {
22
+ return this._filter;
23
+ }
24
+ get isTypeAutocomplete() {
25
+ return this.type === ItemType.AutoComplete;
26
+ }
27
+ get isTypeAutocompleteChips() {
28
+ return this.type === ItemType.AutoCompleteChips;
29
+ }
30
+ get isTypeChips() {
31
+ return this.type === ItemType.Chips;
32
+ }
33
+ get isTypeCheckbox() {
34
+ return this.type === ItemType.Checkbox;
35
+ }
36
+ get isTypeSelect() {
37
+ return this.type === ItemType.Select;
38
+ }
39
+ get isTypeDate() {
40
+ return this.type === ItemType.Date;
41
+ }
42
+ get isTypeDateRange() {
43
+ return this.type === ItemType.DateRange;
44
+ }
45
+ get isTypeRange() {
46
+ return this.type === ItemType.Range;
47
+ }
48
+ get isTypeDateTimeRange() {
49
+ return this.type === ItemType.DateTimeRange;
50
+ }
51
+ get isTypeDateTime() {
52
+ return this.type === ItemType.DateTime;
53
+ }
54
+ get isTypeKeyword() {
55
+ return this.type === ItemType.Keyword;
56
+ }
57
+ get isChipVisible() {
58
+ return !!this.model;
59
+ }
60
+ get destroy$() {
61
+ return this._destroy$.asObservable();
62
+ }
63
+ get type() {
64
+ return this._type;
65
+ }
66
+ get hasPendingValues() {
67
+ return this._pendingValues;
68
+ }
69
+ get hasPendingDefaultValue() {
70
+ return this._pendingDefaultValue;
71
+ }
72
+ get model() {
73
+ return this._model;
74
+ }
75
+ set model(value) {
76
+ this._setModel(value);
77
+ this.valueChanged();
78
+ }
79
+ set values(values) {
80
+ this._values$.next(values);
81
+ }
82
+ get values() {
83
+ return this._values$.getValue();
84
+ }
85
+ get values$() {
86
+ return this._values$.asObservable();
87
+ }
88
+ get valueChange$() {
89
+ return this._valueChange$.asObservable();
90
+ }
91
+ get value$() {
92
+ return this._value$.asObservable();
93
+ }
94
+ get clear$() {
95
+ return this._clear$.asObservable();
96
+ }
97
+ get initialized() {
98
+ return this._initialized;
99
+ }
100
+ get loading$() {
101
+ return this._loading$.asObservable();
102
+ }
103
+ get loading() {
104
+ return this._loading$.getValue();
105
+ }
106
+ set loading(value) {
107
+ this._loading$.next(value);
108
+ }
109
+ get _initialized() {
110
+ return !this._pendingDefaultValue && !this._pendingValues && this._initializedValues;
111
+ }
112
+ valueChanged() {
113
+ this._value$.next(this.value);
114
+ if (this.change) {
115
+ this.change(this, this._filter);
116
+ }
117
+ if (this.initialized) {
118
+ this._valueChange$.next();
119
+ }
120
+ }
121
+ get queryObject() {
122
+ const value = this.value;
123
+ const name = this.name;
124
+ const params = {};
125
+ if (Array.isArray(value)) {
126
+ params[this.name] = value.join(',');
127
+ }
128
+ else {
129
+ params[name] = value;
130
+ }
131
+ return params;
132
+ }
133
+ get persistanceObject() {
134
+ return this.queryObject;
135
+ }
136
+ loadDefaultValue() {
137
+ this._pendingDefaultValue = true;
138
+ return this.defaultValueFn()
139
+ .pipe(tap((value) => {
140
+ this.defaultValue = value;
141
+ this._initDefaultModel();
142
+ }), finalize(() => {
143
+ this._pendingDefaultValue = false;
144
+ }));
145
+ }
146
+ initValues(persistedValue) {
147
+ this._initializedValues = false;
148
+ this.persistedValue = persistedValue;
149
+ this._initDefaultModel();
150
+ const isAutocomplete = this.type === ItemType.AutoComplete || this.type === ItemType.AutoCompleteChips;
151
+ if (this._valuesFn && !isAutocomplete) {
152
+ const valuesResult = this._valuesFn(null, this._filter);
153
+ if (isObservable(valuesResult)) {
154
+ this._pendingValues = true;
155
+ }
156
+ else {
157
+ this.values = valuesResult;
158
+ this._init();
159
+ this._initializedValues = true;
160
+ }
161
+ }
162
+ else {
163
+ this._init();
164
+ this._initializedValues = true;
165
+ }
166
+ }
167
+ loadAsyncValues(reload = true) {
168
+ if (reload || (!this.loading && this.hasPendingValues)) {
169
+ this.loading = true;
170
+ this._valuesFn(null, this._filter)
171
+ .pipe(take(1), takeUntil(this._destroy$))
172
+ .subscribe((values) => {
173
+ this.values = values;
174
+ this._pendingValues = false;
175
+ this.loading = false;
176
+ this._init();
177
+ this._validateModel();
178
+ this._initializedValues = true;
179
+ });
180
+ }
181
+ }
182
+ clear(defaultValue = undefined) {
183
+ if (this.isTypeRange || this.isTypeDateRange || this.isTypeDateTimeRange) {
184
184
  console.warn(`
185
185
  Filter ${this.name} can not be cleared with .clear() method!
186
186
  Use special .clearRange() or clearDateRange() instead.
187
- `);
188
- }
189
- this._clear$.next(defaultValue);
190
- this._clearValue(defaultValue);
191
- }
192
- getChipsContent(type) {
193
- return '';
194
- }
195
- destroy() {
196
- this._destroy$.next();
197
- this._destroy$.complete();
198
- }
199
- _setModel(value) {
200
- this._model = value;
201
- }
202
- _parseConfig(item) {
203
- this.name = item.name;
204
- this.label = item.label;
205
- this.chipLabel = item.chipLabel;
206
- if (typeof item.default === 'function') {
207
- this.defaultValueFn = item.default;
208
- }
209
- else {
210
- this.defaultValue = item.default;
211
- }
212
- this.change = item.change;
213
- this.init = item.init || ((_) => {
214
- //
215
- });
216
- this.hide = item.hide;
217
- this.showClear = item.clear ?? true;
218
- this.persistanceDisabled = item.disablePersist ?? false;
219
- this.queryParamsDisabled = item.disableQueryParams ?? false;
220
- if (isFunction(item.values)) {
221
- this._valuesFn = item.values;
222
- }
223
- else {
224
- this.values = item.values;
225
- }
226
- }
227
- _initDefaultModel() {
228
- const model = this.persistedValue ?? this.defaultValue;
229
- if (model !== undefined) {
230
- this._setModel(model);
231
- }
232
- }
233
- _clearValue(defaultValue = undefined) {
234
- this.model = defaultValue ?? undefined;
235
- }
236
- }
187
+ `);
188
+ }
189
+ this._clear$.next(defaultValue);
190
+ this._clearValue(defaultValue);
191
+ }
192
+ getChipsContent(type) {
193
+ return '';
194
+ }
195
+ destroy() {
196
+ this._destroy$.next();
197
+ this._destroy$.complete();
198
+ }
199
+ _setModel(value) {
200
+ this._model = value;
201
+ }
202
+ _parseConfig(item) {
203
+ this.name = item.name;
204
+ this.label = item.label;
205
+ this.chipLabel = item.chipLabel;
206
+ if (typeof item.default === 'function') {
207
+ this.defaultValueFn = item.default;
208
+ }
209
+ else {
210
+ this.defaultValue = item.default;
211
+ }
212
+ this.change = item.change;
213
+ this.init = item.init || ((_) => {
214
+ //
215
+ });
216
+ this.hide = item.hide;
217
+ this.showClear = item.clear ?? true;
218
+ this.persistanceDisabled = item.disablePersist ?? false;
219
+ this.queryParamsDisabled = item.disableQueryParams ?? false;
220
+ if (isFunction(item.values)) {
221
+ this._valuesFn = item.values;
222
+ }
223
+ else {
224
+ this.values = item.values;
225
+ }
226
+ }
227
+ _initDefaultModel() {
228
+ const model = this.persistedValue ?? this.defaultValue;
229
+ if (model !== undefined) {
230
+ this._setModel(model);
231
+ }
232
+ }
233
+ _clearValue(defaultValue = undefined) {
234
+ this.model = defaultValue ?? undefined;
235
+ }
236
+ }
237
237
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUd2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFNdEQsTUFBTSxPQUFnQixRQUFRO0lBK0I1QixZQUNFLFVBQWEsRUFDSCxpQkFBMEIsRUFDMUIsT0FBd0I7UUFEeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFTO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBaEIxQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUdyQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVsQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQU92QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxD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UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztRQUNwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUM7UUFDeEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUM7UUFFNUQsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFdkQsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRVMsV0FBVyxDQUFDLGVBQXdCLFNBQVM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLElBQUksU0FBUyxDQUFDO0lBQ3pDLENBQUM7Q0FJRiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGZpbmFsaXplLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHR5cGUgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvaXRlbS10eXBlLmVudW0nO1xuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0l0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlckRlZmF1bHRGbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaXRlbXMvYmFzZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlckl0ZW1EZWZhdWx0UmFuZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2l0ZW1zL3JhbmdlLmludGVyZmFjZSc7XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VJdGVtPFQgZXh0ZW5kcyBJRmlsdGVyQ29uZmlnSXRlbT4ge1xuXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nIHwgc3RyaW5nW107XG4gIHB1YmxpYyBjaGlwTGFiZWw6IHN0cmluZyB8IHN0cmluZ1tdO1xuICBwdWJsaWMgaGlkZTogYm9vbGVhbjtcbiAgcHVibGljIGRlZmF1bHRWYWx1ZTogYW55IHwgSUZpbHRlckl0ZW1EZWZhdWx0UmFuZ2U7XG4gIHB1YmxpYyBkZWZhdWx0VmFsdWVGbjogSUZpbHRlckRlZmF1bHRGbjtcbiAgcHVibGljIHBlcnNpc3RlZFZhbHVlOiB1bmtub3duO1xuICBwdWJsaWMgc2hvd0NsZWFyOiBib29sZWFuO1xuICBwdWJsaWMgcGVyc2lzdGFuY2VEaXNhYmxlZDogYm9vbGVhbjtcbiAgcHVibGljIHF1ZXJ5UGFyYW1zRGlzYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBjaGFuZ2U6IChpdGVtOiBCYXNlSXRlbTxUPiwgZmlsdGVyOiBGaWx0ZXJDb21wb25lbnQpID0+IHZvaWQ7XG4gIHB1YmxpYyBpbml0OiAoaXRlbTogQmFzZUl0ZW08VD4sIGZpbHRlcj8pID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF90eXBlOiBUWyd0eXBlJ107XG5cbiAgcHJvdGVjdGVkIF9tb2RlbDogYW55O1xuICBwcm90ZWN0ZWQgX3BlbmRpbmdWYWx1ZXMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9wZW5kaW5nRGVmYXVsdFZhbHVlID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfaW5pdGlhbGl6ZWRWYWx1ZXMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9sb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcm90ZWN0ZWQgX3ZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIHByb3RlY3RlZCBfdmFsdWVDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJvdGVjdGVkIF92YWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcHJvdGVjdGVkIF92YWx1ZXNGbjogKGtleXdvcmQ/OiBzdHJpbmcsIGZpbHRlcj86IEZpbHRlckNvbXBvbmVudCkgPT4gT2JzZXJ2YWJsZTxhbnk+IHwgYW55O1xuXG4gIHByb3RlY3RlZCBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2NsZWFyJCA9IG5ldyBTdWJqZWN0PHVua25vd24+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaXRlbUNvbmZpZzogVCxcbiAgICBwcm90ZWN0ZWQgX2FkZGl0aW9uYWxDb25maWc6IHVua25vd24sXG4gICAgcHJvdGVjdGVkIF9maWx0ZXI6IEZpbHRlckNvbXBvbmVudCxcbiAgKSB7XG4gICAgdGhpcy5fdHlwZSA9IGl0ZW1Db25maWcudHlwZTtcbiAgICB0aGlzLl9wYXJzZUNvbmZpZyhpdGVtQ29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgdmFsdWUoKTtcblxuICBwdWJsaWMgZ2V0IGZpbHRlcigpOiBGaWx0ZXJDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZUF1dG9jb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5BdXRvQ29tcGxldGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZUF1dG9jb21wbGV0ZUNoaXBzKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEl0ZW1UeXBlLkF1dG9Db21wbGV0ZUNoaXBzO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1R5cGVDaGlwcygpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5DaGlwcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlQ2hlY2tib3goKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuQ2hlY2tib3g7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZVNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5TZWxlY3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZURhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuRGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlRGF0ZVJhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEl0ZW1UeXBlLkRhdGVSYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlUmFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuUmFuZ2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZURhdGVUaW1lUmFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuRGF0ZVRpbWVSYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlRGF0ZVRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuRGF0ZVRpbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZUtleXdvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuS2V5d29yZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNDaGlwVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm1vZGVsO1xuICB9XG5cbiAgcHVibGljIGdldCBkZXN0cm95JCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVzdHJveSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHR5cGUoKTogVFsndHlwZSddIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzUGVuZGluZ1ZhbHVlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGVuZGluZ1ZhbHVlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzUGVuZGluZ0RlZmF1bHRWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGVuZGluZ0RlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICB9XG5cbiAgcHVibGljIHNldCBtb2RlbCh2YWx1ZSkge1xuICAgIHRoaXMuX3NldE1vZGVsKHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHVibGljIHNldCB2YWx1ZXModmFsdWVzKSB7XG4gICAgdGhpcy5fdmFsdWVzJC5uZXh0KHZhbHVlcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZXMkKCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZUNoYW5nZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUkKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsZWFyJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xlYXIkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbml0aWFsaXplZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5pdGlhbGl6ZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2xvYWRpbmckLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBfaW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9wZW5kaW5nRGVmYXVsdFZhbHVlICYmICF0aGlzLl9wZW5kaW5nVmFsdWVzICYmIHRoaXMuX2luaXRpYWxpemVkVmFsdWVzO1xuICB9XG5cbiAgcHVibGljIHZhbHVlQ2hhbmdlZCgpIHtcbiAgICB0aGlzLl92YWx1ZSQubmV4dCh0aGlzLnZhbHVlKTtcblxuICAgIGlmICh0aGlzLmNoYW5nZSkge1xuICAgICAgdGhpcy5jaGFuZ2UodGhpcywgdGhpcy5fZmlsdGVyKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5T2JqZWN0KCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZTtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcGFyYW1zW3RoaXMubmFtZV0gPSB2YWx1ZS5qb2luKCcsJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtc1tuYW1lXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBlcnNpc3RhbmNlT2JqZWN0KCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeU9iamVjdDtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkRGVmYXVsdFZhbHVlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy5fcGVuZGluZ0RlZmF1bHRWYWx1ZSA9IHRydWU7XG5cbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VmFsdWVGbigpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgICB0aGlzLl9pbml0RGVmYXVsdE1vZGVsKCk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcGVuZGluZ0RlZmF1bHRWYWx1ZSA9IGZhbHNlO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFZhbHVlcyhwZXJzaXN0ZWRWYWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2luaXRpYWxpemVkVmFsdWVzID0gZmFsc2U7XG4gICAgdGhpcy5wZXJzaXN0ZWRWYWx1ZSA9IHBlcnNpc3RlZFZhbHVlO1xuICAgIHRoaXMuX2luaXREZWZhdWx0TW9kZWwoKTtcblxuICAgIGNvbnN0IGlzQXV0b2NvbXBsZXRlID0gdGhpcy50eXBlID09PSBJdGVtVHlwZS5BdXRvQ29tcGxldGUgfHwgdGhpcy50eXBlID09PSBJdGVtVHlwZS5BdXRvQ29tcGxldGVDaGlwcztcblxuICAgIGlmICh0aGlzLl92YWx1ZXNGbiAmJiAhaXNBdXRvY29tcGxldGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlc1Jlc3VsdCA9IHRoaXMuX3ZhbHVlc0ZuKG51bGwsIHRoaXMuX2ZpbHRlcik7XG5cbiAgICAgIGlmIChpc09ic2VydmFibGUodmFsdWVzUmVzdWx0KSkge1xuICAgICAgICB0aGlzLl9wZW5kaW5nVmFsdWVzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzUmVzdWx0O1xuICAgICAgICB0aGlzLl9pbml0KCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkVmFsdWVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbml0KCk7XG4gICAgICB0aGlzLl9pbml0aWFsaXplZFZhbHVlcyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRBc3luY1ZhbHVlcyhyZWxvYWQgPSB0cnVlKSB7XG4gICAgaWYgKHJlbG9hZCB8fCAoIXRoaXMubG9hZGluZyAmJiB0aGlzLmhhc1BlbmRpbmdWYWx1ZXMpKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAodGhpcy5fdmFsdWVzRm4obnVsbCwgdGhpcy5fZmlsdGVyKSBhcyBPYnNlcnZhYmxlPHVua25vd24+KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWVzKSA9PiB7XG4gICAgICAgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICAgICAgdGhpcy5fcGVuZGluZ1ZhbHVlcyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2luaXQoKTtcbiAgICAgICAgICB0aGlzLl92YWxpZGF0ZU1vZGVsKCk7XG4gICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRWYWx1ZXMgPSB0cnVlO1xuICAgICAgICB9KTtcblxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcihkZWZhdWx0VmFsdWU6IHVua25vd24gPSB1bmRlZmluZWQpIHtcbiAgICBpZiAodGhpcy5pc1R5cGVSYW5nZSB8fCB0aGlzLmlzVHlwZURhdGVSYW5nZSB8fCB0aGlzLmlzVHlwZURhdGVUaW1lUmFuZ2UpIHtcbiAgICAgIGNvbnNvbGUud2FybihgXG4gICAgICAgIEZpbHRlciAke3RoaXMubmFtZX0gY2FuIG5vdCBiZSBjbGVhcmVkIHdpdGggLmNsZWFyKCkgbWV0aG9kIVxuICAgICAgICBVc2Ugc3BlY2lhbCAuY2xlYXJSYW5nZSgpIG9yIGNsZWFyRGF0ZVJhbmdlKCkgaW5zdGVhZC5cbiAgICAgIGApO1xuICAgIH1cblxuICAgIHRoaXMuX2NsZWFyJC5uZXh0KGRlZmF1bHRWYWx1ZSk7XG4gICAgdGhpcy5fY2xlYXJWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldENoaXBzQ29udGVudCh0eXBlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zZXRNb2RlbCh2YWx1ZSkge1xuICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3BhcnNlQ29uZmlnKGl0ZW06IFQpIHtcbiAgICB0aGlzLm5hbWUgPSBpdGVtLm5hbWU7XG4gICAgdGhpcy5sYWJlbCA9IGl0ZW0ubGFiZWw7XG4gICAgdGhpcy5jaGlwTGFiZWwgPSBpdGVtLmNoaXBMYWJlbDtcblxuICAgIGlmICh0eXBlb2YgaXRlbS5kZWZhdWx0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmRlZmF1bHRWYWx1ZUZuID0gaXRlbS5kZWZhdWx0IGFzIElGaWx0ZXJEZWZhdWx0Rm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gaXRlbS5kZWZhdWx0O1xuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlID0gaXRlbS5jaGFuZ2U7XG4gICAgdGhpcy5pbml0ID0gaXRlbS5pbml0IHx8ICgoXykgPT4ge1xuICAgICAgLy9cbiAgICB9KTtcbiAgICB0aGlzLmhpZGUgPSBpdGVtLmhpZGU7XG4gICAgdGhpcy5zaG93Q2xlYXIgPSBpdGVtLmNsZWFyID8/IHRydWU7XG4gICAgdGhpcy5wZXJzaXN0YW5jZURpc2FibGVkID0gaXRlbS5kaXNhYmxlUGVyc2lzdCA/PyBmYWxzZTtcbiAgICB0aGlzLnF1ZXJ5UGFyYW1zRGlzYWJsZWQgPSBpdGVtLmRpc2FibGVRdWVyeVBhcmFtcyA/PyBmYWxzZTtcblxuICAgIGlmIChpc0Z1bmN0aW9uKGl0ZW0udmFsdWVzKSkge1xuICAgICAgdGhpcy5fdmFsdWVzRm4gPSBpdGVtLnZhbHVlcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZXMgPSBpdGVtLnZhbHVlcztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2luaXREZWZhdWx0TW9kZWwoKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLnBlcnNpc3RlZFZhbHVlID8/IHRoaXMuZGVmYXVsdFZhbHVlO1xuXG4gICAgaWYgKG1vZGVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3NldE1vZGVsKG1vZGVsKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2NsZWFyVmFsdWUoZGVmYXVsdFZhbHVlOiB1bmtub3duID0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5tb2RlbCA9IGRlZmF1bHRWYWx1ZSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2luaXQoKTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF92YWxpZGF0ZU1vZGVsKCk7XG59XG4iXX0=