@theseam/ui-common 0.4.26 → 0.4.28-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
  2. package/datatable/datatable/datatable.component.d.ts +60 -9
  3. package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +25 -0
  4. package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +18 -0
  5. package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +16 -0
  6. package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +15 -0
  7. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -2
  8. package/datatable/datatable.module.d.ts +29 -20
  9. package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +8 -0
  10. package/datatable/directives/datatable-column-filter.directive.d.ts +10 -0
  11. package/datatable/models/action-item-column-position.d.ts +13 -0
  12. package/datatable/models/columns-data-filter.d.ts +57 -0
  13. package/datatable/models/columns-data-filters/models.d.ts +65 -0
  14. package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +23 -0
  15. package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +22 -0
  16. package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +21 -0
  17. package/datatable/models/columns-data-filters/utils.d.ts +15 -0
  18. package/datatable/models/datatable-config.d.ts +90 -0
  19. package/datatable/models/table-column.d.ts +22 -1
  20. package/datatable/public-api.d.ts +14 -0
  21. package/datatable/services/columns-filters.service.d.ts +29 -0
  22. package/datatable/services/columns-manager.service.d.ts +7 -0
  23. package/datatable/utils/create-action-menu-column.d.ts +1 -1
  24. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +2 -2
  25. package/esm2020/datatable/datatable/datatable.component.mjs +231 -31
  26. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +2 -2
  27. package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +55 -0
  28. package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +54 -0
  29. package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +48 -0
  30. package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +44 -0
  31. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +1 -1
  32. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +1 -1
  33. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +1 -1
  34. package/esm2020/datatable/datatable.module.mjs +49 -7
  35. package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +16 -0
  36. package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +26 -0
  37. package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
  38. package/esm2020/datatable/models/columns-data-filter.mjs +10 -0
  39. package/esm2020/datatable/models/columns-data-filters/models.mjs +74 -0
  40. package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +113 -0
  41. package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +104 -0
  42. package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +86 -0
  43. package/esm2020/datatable/models/columns-data-filters/utils.mjs +28 -0
  44. package/esm2020/datatable/models/datatable-config.mjs +3 -0
  45. package/esm2020/datatable/models/table-column.mjs +1 -1
  46. package/esm2020/datatable/public-api.mjs +15 -1
  47. package/esm2020/datatable/services/columns-filters.service.mjs +109 -0
  48. package/esm2020/datatable/services/columns-manager.service.mjs +27 -2
  49. package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
  50. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +1 -1
  51. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +1 -1
  52. package/esm2020/framework/base-layout/base-layout.component.mjs +14 -4
  53. package/esm2020/framework/base-layout/base-layout.module.mjs +6 -1
  54. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +21 -5
  55. package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
  56. package/esm2020/framework/base-layout/index.mjs +2 -1
  57. package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
  58. package/esm2020/framework/nav/index.mjs +6 -0
  59. package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
  60. package/esm2020/framework/nav/nav-utils.mjs +107 -0
  61. package/esm2020/framework/nav/nav.models.mjs +2 -0
  62. package/esm2020/framework/nav/nav.module.mjs +67 -0
  63. package/esm2020/framework/nav/nav.service.mjs +204 -0
  64. package/esm2020/framework/public-api.mjs +2 -1
  65. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +2 -2
  66. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +28 -67
  67. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +12 -5
  68. package/esm2020/framework/side-nav/side-nav.component.mjs +116 -38
  69. package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
  70. package/esm2020/framework/side-nav/side-nav.module.mjs +9 -39
  71. package/esm2020/framework/side-nav/side-nav.service.mjs +1 -1
  72. package/esm2020/framework/top-bar/index.mjs +3 -1
  73. package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
  74. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +10 -4
  75. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +6 -4
  76. package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
  77. package/esm2020/framework/top-bar/top-bar.component.mjs +55 -11
  78. package/esm2020/framework/top-bar/top-bar.module.mjs +15 -5
  79. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +1 -1
  80. package/esm2020/graphql/datatable/index.mjs +4 -1
  81. package/esm2020/graphql/datatable/map-filter-states.mjs +1 -1
  82. package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +139 -0
  83. package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +75 -0
  84. package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +44 -0
  85. package/esm2020/layout/layout.service.mjs +12 -2
  86. package/esm2020/menu/menu-toggle.directive.mjs +7 -2
  87. package/esm2020/popover/popover/popover.component.mjs +7 -3
  88. package/esm2020/popover/popover.directive.mjs +6 -2
  89. package/esm2020/rich-text/public-api.mjs +1 -1
  90. package/esm2020/rich-text/rich-text/rich-text.component.mjs +24 -3
  91. package/esm2020/rich-text/utils/models.mjs +1 -1
  92. package/esm2020/rich-text/utils/utils.mjs +1 -1
  93. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +5 -3
  94. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +2 -2
  95. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  96. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +2 -2
  97. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  98. package/fesm2015/theseam-ui-common-datatable.mjs +1025 -62
  99. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  100. package/fesm2015/theseam-ui-common-framework.mjs +905 -156
  101. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  102. package/fesm2015/theseam-ui-common-graphql.mjs +254 -1
  103. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  104. package/fesm2015/theseam-ui-common-layout.mjs +11 -2
  105. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  106. package/fesm2015/theseam-ui-common-menu.mjs +6 -1
  107. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  108. package/fesm2015/theseam-ui-common-popover.mjs +11 -3
  109. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  110. package/fesm2015/theseam-ui-common-rich-text.mjs +25 -2
  111. package/fesm2015/theseam-ui-common-rich-text.mjs.map +1 -1
  112. package/fesm2015/theseam-ui-common-table-cell-types.mjs +4 -2
  113. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  114. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +2 -2
  115. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  116. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +2 -2
  117. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  118. package/fesm2020/theseam-ui-common-datatable.mjs +1010 -62
  119. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  120. package/fesm2020/theseam-ui-common-framework.mjs +907 -156
  121. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  122. package/fesm2020/theseam-ui-common-graphql.mjs +254 -1
  123. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  124. package/fesm2020/theseam-ui-common-layout.mjs +11 -2
  125. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  126. package/fesm2020/theseam-ui-common-menu.mjs +6 -1
  127. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  128. package/fesm2020/theseam-ui-common-popover.mjs +11 -3
  129. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  130. package/fesm2020/theseam-ui-common-rich-text.mjs +23 -2
  131. package/fesm2020/theseam-ui-common-rich-text.mjs.map +1 -1
  132. package/fesm2020/theseam-ui-common-table-cell-types.mjs +4 -2
  133. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  134. package/framework/base-layout/base-layout.component.d.ts +4 -2
  135. package/framework/base-layout/base-layout.component.scss +18 -10
  136. package/framework/base-layout/base-layout.module.d.ts +11 -10
  137. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
  138. package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
  139. package/framework/base-layout/index.d.ts +1 -0
  140. package/framework/base-layout/styles/_variables.scss +21 -0
  141. package/framework/nav/_nav-theme.scss +4 -0
  142. package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
  143. package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
  144. package/framework/nav/index.d.ts +5 -0
  145. package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
  146. package/framework/nav/nav-item/nav-item.component.scss +203 -0
  147. package/framework/nav/nav-utils.d.ts +20 -0
  148. package/framework/nav/nav.models.d.ts +77 -0
  149. package/framework/nav/nav.module.d.ts +17 -0
  150. package/framework/nav/nav.service.d.ts +27 -0
  151. package/framework/nav/styles/_themes/light/_variables.scss +56 -0
  152. package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
  153. package/framework/nav/styles/_utilities.scss +3 -0
  154. package/framework/nav/styles/_variables.scss +2 -0
  155. package/framework/public-api.d.ts +1 -0
  156. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +7 -14
  157. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
  158. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
  159. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
  160. package/framework/side-nav/side-nav.component.d.ts +13 -1
  161. package/framework/side-nav/side-nav.component.scss +0 -1
  162. package/framework/side-nav/side-nav.models.d.ts +7 -1
  163. package/framework/side-nav/side-nav.module.d.ts +1 -9
  164. package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
  165. package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
  166. package/framework/top-bar/index.d.ts +2 -0
  167. package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
  168. package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
  169. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
  170. package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
  171. package/framework/top-bar/top-bar.component.d.ts +25 -3
  172. package/framework/top-bar/top-bar.component.scss +7 -2
  173. package/framework/top-bar/top-bar.module.d.ts +10 -8
  174. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  175. package/graphql/datatable/index.d.ts +3 -0
  176. package/graphql/datatable/map-filter-states.d.ts +2 -2
  177. package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +4 -0
  178. package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +4 -0
  179. package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +4 -0
  180. package/layout/layout.service.d.ts +9 -1
  181. package/menu/menu-toggle.directive.d.ts +2 -1
  182. package/package.json +2 -2
  183. package/popover/popover/popover.component.d.ts +4 -1
  184. package/popover/popover.directive.d.ts +2 -1
  185. package/rich-text/rich-text/rich-text.component.d.ts +6 -4
  186. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +83 -14
  187. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +38 -3
@@ -93,13 +93,13 @@ export class DatatableActionMenuComponent {
93
93
  }
94
94
  }
95
95
  DatatableActionMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuComponent, deps: [{ token: i1.SeamConfirmDialogService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
96
- DatatableActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableActionMenuComponent, selector: "seam-datatable-action-menu", inputs: { isSubMenu: "isSubMenu" }, queries: [{ propertyName: "items", predicate: DatatableActionMenuItemComponent }], viewQueries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true, static: true }], exportAs: ["seamDatatableActionMenu"], ngImport: i0, template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\">\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i5.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }] });
96
+ DatatableActionMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableActionMenuComponent, selector: "seam-datatable-action-menu", inputs: { isSubMenu: "isSubMenu" }, queries: [{ propertyName: "items", predicate: DatatableActionMenuItemComponent }], viewQueries: [{ propertyName: "menu", first: true, predicate: MenuComponent, descendants: true, static: true }], exportAs: ["seamDatatableActionMenu"], ngImport: i0, template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\">\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{position:relative;display:flex;align-items:center;justify-content:center;height:100%}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i4.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i4.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i5.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }] });
97
97
  __decorate([
98
98
  InputBoolean()
99
99
  ], DatatableActionMenuComponent.prototype, "isSubMenu", void 0);
100
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableActionMenuComponent, decorators: [{
101
101
  type: Component,
102
- args: [{ selector: 'seam-datatable-action-menu', exportAs: 'seamDatatableActionMenu', template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\">\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
102
+ args: [{ selector: 'seam-datatable-action-menu', exportAs: 'seamDatatableActionMenu', template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"$any(item.fragment)\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"$any(item.preserveFragment)\"\n [skipLocationChange]=\"$any(item.skipLocationChange)\"\n [replaceUrl]=\"$any(item.replaceUrl)\"\n [state]=\"$any(item.state)\"\n [routerLink]=\"item.routerLink\"\n [target]=\"$any(item.target)\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <ng-container *ngIf=\"!!item.subMenu; else noSubMenu\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n [seamMenuToggle]=\"item.subMenu.menu\"\n [seamMenuTogglePositionsOffsetY]=\"-3\">\n {{ item.label }}\n </button>\n </ng-container>\n <ng-template #noSubMenu>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [disabled]=\"item.disabled\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-template>\n </ng-container>\n</seam-menu>\n\n<ng-container *ngIf=\"!isSubMenu && items?.length\">\n <button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n </button>\n</ng-container>\n", styles: [":host{position:relative;display:flex;align-items:center;justify-content:center;height:100%}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"] }]
103
103
  }], ctorParameters: function () { return [{ type: i1.SeamConfirmDialogService }, { type: i2.Router }]; }, propDecorators: { menu: [{
104
104
  type: ViewChild,
105
105
  args: [MenuComponent, { static: true }]
@@ -0,0 +1,55 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { notNullOrUndefined } from '@theseam/ui-common/utils';
4
+ import { debounceTime, map, tap } from 'rxjs';
5
+ import { InputNumber } from '@theseam/ui-common/core';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../services/columns-filters.service";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@theseam/ui-common/buttons";
10
+ import * as i4 from "@angular/forms";
11
+ import * as i5 from "../datatable-column-filter-search-text/datatable-column-filter-search-text.component";
12
+ import * as i6 from "../datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component";
13
+ import * as i7 from "../datatable-column-filter-search-date/datatable-column-filter-search-date.component";
14
+ export class DatatableColumnFilterMenuComponent {
15
+ constructor(_columnsFilters) {
16
+ this._columnsFilters = _columnsFilters;
17
+ this.closePopover = new EventEmitter();
18
+ }
19
+ ngOnInit() {
20
+ this.columnFilterProp = this._columnsFilters.getColumnFilterProp(this.column);
21
+ this.columnFilter = this._columnsFilters.getColumnFilter(this.columnFilterProp);
22
+ if (notNullOrUndefined(this.columnFilter)) {
23
+ this._filterForm = this.columnFilter.form;
24
+ }
25
+ this.customFilterTemplate$ = this._columnsFilters.columnFilterTemplates$.pipe(map(templates => templates.find(t => t.filterName === this.columnFilter?.name)));
26
+ if (this.updateMethod === 'valueChanges' && notNullOrUndefined(this._filterForm)) {
27
+ this._filterForm.valueChanges.pipe(debounceTime(this.debounce || 0), tap(() => this.columnFilter?.applyFilter())).subscribe();
28
+ }
29
+ }
30
+ submit() {
31
+ this.columnFilter?.applyFilter();
32
+ this.closePopover.emit();
33
+ }
34
+ clearFilter() {
35
+ this.columnFilter?.clearFilter();
36
+ }
37
+ }
38
+ DatatableColumnFilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterMenuComponent, deps: [{ token: i1.ColumnsFiltersService }], target: i0.ɵɵFactoryTarget.Component });
39
+ DatatableColumnFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnFilterMenuComponent, selector: "seam-datatable-column-filter-menu", inputs: { column: "column", updateMethod: "updateMethod", debounce: "debounce" }, outputs: { closePopover: "closePopover" }, ngImport: i0, template: "<ng-container *ngIf=\"_filterForm && columnFilter\">\n <form [formGroup]=\"_filterForm\" (ngSubmit)=\"submit()\">\n <ng-container [ngSwitch]=\"columnFilter.name\">\n <div *ngSwitchCase=\"'search-text'\">\n <seam-datatable-column-filter-search-text [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-text>\n </div>\n <div *ngSwitchCase=\"'search-numeric'\">\n <seam-datatable-column-filter-search-numeric [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-numeric>\n </div>\n <div *ngSwitchCase=\"'search-date'\">\n <seam-datatable-column-filter-search-date [filterForm]=\"_filterForm\" [options]=\"columnFilter.options\"></seam-datatable-column-filter-search-date>\n </div>\n <div *ngSwitchDefault>\n <ng-container *ngIf=\"customFilterTemplate$ | async as filterTpl\">\n <ng-container *ngIf=\"filterTpl.template\">\n <ng-container\n [ngTemplateOutlet]=\"filterTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: _filterForm, filterForm: _filterForm, options: columnFilter.options, column: column, columnFilter: columnFilter }\">\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <hr class=\"mb-1\">\n <div class=\"d-flex align-items-center\" [class.justify-content-between]=\"updateMethod === 'submit'\" [class.text-right]=\"updateMethod === 'valueChanges'\">\n <button seamButton size=\"sm\" class=\"text-primary p-0\" (click)=\"clearFilter()\" [disabled]=\"columnFilter?.isDefault() === true\">Clear</button>\n <button\n *ngIf=\"updateMethod === 'submit'\"\n seamButton\n size=\"sm\"\n class=\"text-primary p-0\"\n type=\"submit\"\n [disabled]=\"columnFilter?.isDefault() === true\">\n Apply\n </button>\n </div>\n </form>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.DatatableColumnFilterSearchTextComponent, selector: "seam-datatable-column-filter-search-text", inputs: ["filterForm"] }, { kind: "component", type: i6.DatatableColumnFilterSearchNumericComponent, selector: "seam-datatable-column-filter-search-numeric", inputs: ["filterForm"] }, { kind: "component", type: i7.DatatableColumnFilterSearchDateComponent, selector: "seam-datatable-column-filter-search-date", inputs: ["options", "filterForm"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
40
+ __decorate([
41
+ InputNumber()
42
+ ], DatatableColumnFilterMenuComponent.prototype, "debounce", void 0);
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterMenuComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'seam-datatable-column-filter-menu', template: "<ng-container *ngIf=\"_filterForm && columnFilter\">\n <form [formGroup]=\"_filterForm\" (ngSubmit)=\"submit()\">\n <ng-container [ngSwitch]=\"columnFilter.name\">\n <div *ngSwitchCase=\"'search-text'\">\n <seam-datatable-column-filter-search-text [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-text>\n </div>\n <div *ngSwitchCase=\"'search-numeric'\">\n <seam-datatable-column-filter-search-numeric [filterForm]=\"_filterForm\"></seam-datatable-column-filter-search-numeric>\n </div>\n <div *ngSwitchCase=\"'search-date'\">\n <seam-datatable-column-filter-search-date [filterForm]=\"_filterForm\" [options]=\"columnFilter.options\"></seam-datatable-column-filter-search-date>\n </div>\n <div *ngSwitchDefault>\n <ng-container *ngIf=\"customFilterTemplate$ | async as filterTpl\">\n <ng-container *ngIf=\"filterTpl.template\">\n <ng-container\n [ngTemplateOutlet]=\"filterTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: _filterForm, filterForm: _filterForm, options: columnFilter.options, column: column, columnFilter: columnFilter }\">\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n\n <hr class=\"mb-1\">\n <div class=\"d-flex align-items-center\" [class.justify-content-between]=\"updateMethod === 'submit'\" [class.text-right]=\"updateMethod === 'valueChanges'\">\n <button seamButton size=\"sm\" class=\"text-primary p-0\" (click)=\"clearFilter()\" [disabled]=\"columnFilter?.isDefault() === true\">Clear</button>\n <button\n *ngIf=\"updateMethod === 'submit'\"\n seamButton\n size=\"sm\"\n class=\"text-primary p-0\"\n type=\"submit\"\n [disabled]=\"columnFilter?.isDefault() === true\">\n Apply\n </button>\n </div>\n </form>\n</ng-container>\n" }]
46
+ }], ctorParameters: function () { return [{ type: i1.ColumnsFiltersService }]; }, propDecorators: { column: [{
47
+ type: Input
48
+ }], updateMethod: [{
49
+ type: Input
50
+ }], debounce: [{
51
+ type: Input
52
+ }], closePopover: [{
53
+ type: Output
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLW1lbnUvZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLW1lbnUvZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQU03RCxPQUFPLEVBQWMsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBOzs7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLGtDQUFrQztJQWtCN0MsWUFDbUIsZUFBc0M7UUFBdEMsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBSC9DLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUl4QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUU3RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBRS9FLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUE7U0FDMUM7UUFFRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQzNFLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDaEYsQ0FBQTtRQUVELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxjQUFjLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDaEMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQ2hDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQzVDLENBQUMsU0FBUyxFQUFFLENBQUE7U0FDZDtJQUNILENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQTtRQUVoQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUE7SUFDbEMsQ0FBQzs7K0hBbkRVLGtDQUFrQzttSEFBbEMsa0NBQWtDLHNNQ2pCL0MsbzVEQXVDQTtBRGQwQjtJQUFkLFdBQVcsRUFBRTtvRUFBb0M7MkZBUmhELGtDQUFrQztrQkFMOUMsU0FBUzsrQkFDRSxtQ0FBbUM7NEdBUXBDLE1BQU07c0JBQWQsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVrQixRQUFRO3NCQUEvQixLQUFLO2dCQVFJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBDb2x1bW5zRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb2x1bW5zLWZpbHRlcnMuc2VydmljZSdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtY29sdW1uJ1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBDb2x1bW5zRGF0YUZpbHRlciB9IGZyb20gJy4uL21vZGVscy9jb2x1bW5zLWRhdGEtZmlsdGVyJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGVib3VuY2VUaW1lLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uRmlsdGVyVXBkYXRlTWV0aG9kIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGF0YWJsZS1jb25maWcnXG5pbXBvcnQgeyBJbnB1dE51bWJlciB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlQ29sdW1uRmlsdGVyTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgX2ZpbHRlckZvcm06IEZvcm1Hcm91cDxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KCkgY29sdW1uOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4gIEBJbnB1dCgpIHVwZGF0ZU1ldGhvZDogVGhlU2VhbURhdGF0YWJsZUNvbHVtbkZpbHRlclVwZGF0ZU1ldGhvZCB8IG51bGwgfCB1bmRlZmluZWRcblxuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSBkZWJvdW5jZTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4gIHB1YmxpYyBjb2x1bW5GaWx0ZXJQcm9wOiBzdHJpbmcgfCBudWxsIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4gIHB1YmxpYyBjb2x1bW5GaWx0ZXI6IENvbHVtbnNEYXRhRmlsdGVyPGFueSwgYW55PiB8IG51bGwgfCB1bmRlZmluZWRcblxuICBwdWJsaWMgY3VzdG9tRmlsdGVyVGVtcGxhdGUkOiBPYnNlcnZhYmxlPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkXG5cbiAgQE91dHB1dCgpIGNsb3NlUG9wb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbHVtbnNGaWx0ZXJzOiBDb2x1bW5zRmlsdGVyc1NlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uRmlsdGVyUHJvcCA9IHRoaXMuX2NvbHVtbnNGaWx0ZXJzLmdldENvbHVtbkZpbHRlclByb3AodGhpcy5jb2x1bW4pXG5cbiAgICB0aGlzLmNvbHVtbkZpbHRlciA9IHRoaXMuX2NvbHVtbnNGaWx0ZXJzLmdldENvbHVtbkZpbHRlcih0aGlzLmNvbHVtbkZpbHRlclByb3ApXG5cbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKHRoaXMuY29sdW1uRmlsdGVyKSkge1xuICAgICAgdGhpcy5fZmlsdGVyRm9ybSA9IHRoaXMuY29sdW1uRmlsdGVyLmZvcm1cbiAgICB9XG5cbiAgICB0aGlzLmN1c3RvbUZpbHRlclRlbXBsYXRlJCA9IHRoaXMuX2NvbHVtbnNGaWx0ZXJzLmNvbHVtbkZpbHRlclRlbXBsYXRlcyQucGlwZShcbiAgICAgIG1hcCh0ZW1wbGF0ZXMgPT4gdGVtcGxhdGVzLmZpbmQodCA9PiB0LmZpbHRlck5hbWUgPT09IHRoaXMuY29sdW1uRmlsdGVyPy5uYW1lKSlcbiAgICApXG5cbiAgICBpZiAodGhpcy51cGRhdGVNZXRob2QgPT09ICd2YWx1ZUNoYW5nZXMnICYmIG5vdE51bGxPclVuZGVmaW5lZCh0aGlzLl9maWx0ZXJGb3JtKSkge1xuICAgICAgdGhpcy5fZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UgfHwgMCksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmNvbHVtbkZpbHRlcj8uYXBwbHlGaWx0ZXIoKSlcbiAgICAgICkuc3Vic2NyaWJlKClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCkge1xuICAgIHRoaXMuY29sdW1uRmlsdGVyPy5hcHBseUZpbHRlcigpXG5cbiAgICB0aGlzLmNsb3NlUG9wb3Zlci5lbWl0KClcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckZpbHRlcigpIHtcbiAgICB0aGlzLmNvbHVtbkZpbHRlcj8uY2xlYXJGaWx0ZXIoKVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJfZmlsdGVyRm9ybSAmJiBjb2x1bW5GaWx0ZXJcIj5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJfZmlsdGVyRm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbHVtbkZpbHRlci5uYW1lXCI+XG4gICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoLXRleHQnXCI+XG4gICAgICAgIDxzZWFtLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC10ZXh0IFtmaWx0ZXJGb3JtXT1cIl9maWx0ZXJGb3JtXCI+PC9zZWFtLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC10ZXh0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoLW51bWVyaWMnXCI+XG4gICAgICAgIDxzZWFtLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1udW1lcmljIFtmaWx0ZXJGb3JtXT1cIl9maWx0ZXJGb3JtXCI+PC9zZWFtLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1udW1lcmljPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoLWRhdGUnXCI+XG4gICAgICAgIDxzZWFtLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1kYXRlIFtmaWx0ZXJGb3JtXT1cIl9maWx0ZXJGb3JtXCIgW29wdGlvbnNdPVwiY29sdW1uRmlsdGVyLm9wdGlvbnNcIj48L3NlYW0tZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItc2VhcmNoLWRhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUZpbHRlclRlbXBsYXRlJCB8IGFzeW5jIGFzIGZpbHRlclRwbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJUcGwudGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyVHBsLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBfZmlsdGVyRm9ybSwgZmlsdGVyRm9ybTogX2ZpbHRlckZvcm0sIG9wdGlvbnM6IGNvbHVtbkZpbHRlci5vcHRpb25zLCBjb2x1bW46IGNvbHVtbiwgY29sdW1uRmlsdGVyOiBjb2x1bW5GaWx0ZXIgfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8aHIgY2xhc3M9XCJtYi0xXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBbY2xhc3MuanVzdGlmeS1jb250ZW50LWJldHdlZW5dPVwidXBkYXRlTWV0aG9kID09PSAnc3VibWl0J1wiIFtjbGFzcy50ZXh0LXJpZ2h0XT1cInVwZGF0ZU1ldGhvZCA9PT0gJ3ZhbHVlQ2hhbmdlcydcIj5cbiAgICAgIDxidXR0b24gc2VhbUJ1dHRvbiBzaXplPVwic21cIiBjbGFzcz1cInRleHQtcHJpbWFyeSBwLTBcIiAoY2xpY2spPVwiY2xlYXJGaWx0ZXIoKVwiIFtkaXNhYmxlZF09XCJjb2x1bW5GaWx0ZXI/LmlzRGVmYXVsdCgpID09PSB0cnVlXCI+Q2xlYXI8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJ1cGRhdGVNZXRob2QgPT09ICdzdWJtaXQnXCJcbiAgICAgICAgc2VhbUJ1dHRvblxuICAgICAgICBzaXplPVwic21cIlxuICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBwLTBcIlxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbHVtbkZpbHRlcj8uaXNEZWZhdWx0KCkgPT09IHRydWVcIj5cbiAgICAgICAgQXBwbHlcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { map, startWith } from 'rxjs';
3
+ import { notNullOrUndefined } from '@theseam/ui-common/utils';
4
+ import { ControlContainer, FormGroupDirective } from '@angular/forms';
5
+ import { THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES } from '../models/columns-data-filters/models';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@theseam/ui-common/shared";
9
+ import * as i3 from "@theseam/ui-common/form-field";
10
+ import * as i4 from "@angular/forms";
11
+ import * as i5 from "@ng-select/ng-select";
12
+ export class DatatableColumnFilterSearchDateComponent {
13
+ constructor() {
14
+ this.searchTypes = [
15
+ { label: 'Before', value: 'lt' },
16
+ { label: 'Before or on', value: 'lte' },
17
+ { label: 'On', value: 'eq' },
18
+ { label: 'After', value: 'gt' },
19
+ { label: 'After or on', value: 'gte' },
20
+ { label: 'Between', value: 'between' },
21
+ { label: 'Not between', value: 'not-between' },
22
+ { label: 'Blank', value: 'blank' },
23
+ { label: 'Not blank', value: 'not-blank' },
24
+ ];
25
+ }
26
+ ngOnInit() {
27
+ if (notNullOrUndefined(this.options?.dateType)) {
28
+ this.dateFormat = this.options?.dateType;
29
+ }
30
+ this.showSearchInput$ = this.filterForm?.controls.searchType.valueChanges.pipe(startWith(this.filterForm?.controls.searchType.value), map(searchType => THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES.includes(searchType || '')));
31
+ this.showRangeInputs$ = this.filterForm?.controls.searchType.valueChanges.pipe(startWith(this.filterForm?.controls.searchType.value), map(searchType => THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES.includes(searchType || '')));
32
+ }
33
+ }
34
+ DatatableColumnFilterSearchDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ DatatableColumnFilterSearchDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnFilterSearchDateComponent, selector: "seam-datatable-column-filter-search-date", inputs: { options: "options", filterForm: "filterForm" }, ngImport: i0, template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\n </seam-form-field>\n\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"toText\" placeholder=\"Range End\">\n </seam-form-field>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2.NgSelectExtraDirective, selector: "ng-select" }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], viewProviders: [
36
+ {
37
+ provide: ControlContainer,
38
+ useExisting: FormGroupDirective
39
+ }
40
+ ] });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchDateComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'seam-datatable-column-filter-search-date', viewProviders: [
44
+ {
45
+ provide: ControlContainer,
46
+ useExisting: FormGroupDirective
47
+ }
48
+ ], template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\n </seam-form-field>\n\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput [type]=\"dateFormat\" formControlName=\"toText\" placeholder=\"Range End\">\n </seam-form-field>\n </ng-container>\n</ng-container>\n" }]
49
+ }], propDecorators: { options: [{
50
+ type: Input
51
+ }], filterForm: [{
52
+ type: Input
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItc2VhcmNoLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtY29sdW1uLWZpbHRlci1zZWFyY2gtZGF0ZS9kYXRhdGFibGUtY29sdW1uLWZpbHRlci1zZWFyY2gtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1kYXRlL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3hELE9BQU8sRUFBYyxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JFLE9BQU8sRUFBeUssbURBQW1ELEVBQUUsa0RBQWtELEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTs7Ozs7OztBQWF0VSxNQUFNLE9BQU8sd0NBQXdDO0lBWHJEO1FBYUUsZ0JBQVcsR0FBdUU7WUFDaEYsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDdkMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDNUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7WUFDOUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7U0FDM0MsQ0FBQTtLQTJCRjtJQWZDLFFBQVE7UUFDTixJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQTtTQUN6QztRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDNUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFDckQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsa0RBQWtELENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUNqRyxDQUFBO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM1RSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUNyRCxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtREFBbUQsQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ2xHLENBQUE7SUFDSCxDQUFDOztxSUF0Q1Usd0NBQXdDO3lIQUF4Qyx3Q0FBd0MsMElDakJyRCxnbENBMkJBLHkzRURqQmlCO1FBQ2I7WUFDRSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFdBQVcsRUFBRSxrQkFBa0I7U0FDaEM7S0FDRjsyRkFFVSx3Q0FBd0M7a0JBWHBELFNBQVM7K0JBQ0UsMENBQTBDLGlCQUdyQzt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixXQUFXLEVBQUUsa0JBQWtCO3lCQUNoQztxQkFDRjs4QkFnQlEsT0FBTztzQkFBZixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJEYXRlU2VhcmNoRGF0ZVR5cGUsIFRoZVNlYW1Db2x1bW5zRGF0YUZpbHRlckRhdGVTZWFyY2hGb3JtLCBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJEYXRlU2VhcmNoT3B0aW9ucywgVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyRGF0ZVNlYXJjaFR5cGUsIFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9EQVRFX1JBTkdFX1NFQVJDSF9UWVBFUywgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX0RBVEVfVEVYVF9TRUFSQ0hfVFlQRVMgfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1kYXRhLWZpbHRlcnMvbW9kZWxzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1kYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItc2VhcmNoLWRhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybUdyb3VwRGlyZWN0aXZlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUNvbHVtbkZpbHRlclNlYXJjaERhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHNlYXJjaFR5cGVzOiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJEYXRlU2VhcmNoVHlwZSB9W10gPSBbXG4gICAgeyBsYWJlbDogJ0JlZm9yZScsIHZhbHVlOiAnbHQnIH0sXG4gICAgeyBsYWJlbDogJ0JlZm9yZSBvciBvbicsIHZhbHVlOiAnbHRlJyB9LFxuICAgIHsgbGFiZWw6ICdPbicsIHZhbHVlOiAnZXEnIH0sXG4gICAgeyBsYWJlbDogJ0FmdGVyJywgdmFsdWU6ICdndCcgfSxcbiAgICB7IGxhYmVsOiAnQWZ0ZXIgb3Igb24nLCB2YWx1ZTogJ2d0ZScgfSxcbiAgICB7IGxhYmVsOiAnQmV0d2VlbicsIHZhbHVlOiAnYmV0d2VlbicgfSxcbiAgICB7IGxhYmVsOiAnTm90IGJldHdlZW4nLCB2YWx1ZTogJ25vdC1iZXR3ZWVuJyB9LFxuICAgIHsgbGFiZWw6ICdCbGFuaycsIHZhbHVlOiAnYmxhbmsnIH0sXG4gICAgeyBsYWJlbDogJ05vdCBibGFuaycsIHZhbHVlOiAnbm90LWJsYW5rJyB9LFxuICBdXG5cbiAgQElucHV0KCkgb3B0aW9uczogVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyRGF0ZVNlYXJjaE9wdGlvbnMgfCB1bmRlZmluZWRcblxuICBASW5wdXQoKSBmaWx0ZXJGb3JtOiBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJEYXRlU2VhcmNoRm9ybSB8IHVuZGVmaW5lZFxuXG4gIHB1YmxpYyBkYXRlRm9ybWF0OiBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJEYXRlU2VhcmNoRGF0ZVR5cGUgfCB1bmRlZmluZWRcblxuICBwdWJsaWMgc2hvd1NlYXJjaElucHV0JDogT2JzZXJ2YWJsZTxib29sZWFuPiB8IHVuZGVmaW5lZFxuXG4gIHB1YmxpYyBzaG93UmFuZ2VJbnB1dHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgdW5kZWZpbmVkXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh0aGlzLm9wdGlvbnM/LmRhdGVUeXBlKSkge1xuICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gdGhpcy5vcHRpb25zPy5kYXRlVHlwZVxuICAgIH1cblxuICAgIHRoaXMuc2hvd1NlYXJjaElucHV0JCA9IHRoaXMuZmlsdGVyRm9ybT8uY29udHJvbHMuc2VhcmNoVHlwZS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmZpbHRlckZvcm0/LmNvbnRyb2xzLnNlYXJjaFR5cGUudmFsdWUpLFxuICAgICAgbWFwKHNlYXJjaFR5cGUgPT4gVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX0RBVEVfVEVYVF9TRUFSQ0hfVFlQRVMuaW5jbHVkZXMoc2VhcmNoVHlwZSB8fCAnJykpXG4gICAgKVxuXG4gICAgdGhpcy5zaG93UmFuZ2VJbnB1dHMkID0gdGhpcy5maWx0ZXJGb3JtPy5jb250cm9scy5zZWFyY2hUeXBlLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMuZmlsdGVyRm9ybT8uY29udHJvbHMuc2VhcmNoVHlwZS52YWx1ZSksXG4gICAgICBtYXAoc2VhcmNoVHlwZSA9PiBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfREFURV9SQU5HRV9TRUFSQ0hfVFlQRVMuaW5jbHVkZXMoc2VhcmNoVHlwZSB8fCAnJykpXG4gICAgKVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyRm9ybVwiPlxuICA8c2VhbS1mb3JtLWZpZWxkIFtudW1QYWRkaW5nRXJyb3JzXT1cIjBcIiBjbGFzcz1cIm1iLTJcIj5cbiAgICA8bmctc2VsZWN0XG4gICAgICBzZWFtSW5wdXRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlYXJjaFR5cGVcIlxuICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBzZWFyY2ggdHlwZVwiXG4gICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICBbaXRlbXNdPVwic2VhcmNoVHlwZXNcIj48L25nLXNlbGVjdD5cbiAgPC9zZWFtLWZvcm0tZmllbGQ+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dTZWFyY2hJbnB1dCQgfCBhc3luY1wiPlxuICAgIDxzZWFtLWZvcm0tZmllbGQgW251bVBhZGRpbmdFcnJvcnNdPVwiMFwiIGNsYXNzPVwibWItMlwiPlxuICAgICAgPGlucHV0IHNlYW1JbnB1dCBbdHlwZV09XCJkYXRlRm9ybWF0XCIgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoVGV4dFwiIHBsYWNlaG9sZGVyPVwiVHlwZSB0byBzZWFyY2hcIiBzZWFtQXV0b0ZvY3VzPlxuICAgIDwvc2VhbS1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1JhbmdlSW5wdXRzJCB8IGFzeW5jXCI+XG4gICAgPHNlYW0tZm9ybS1maWVsZCBbbnVtUGFkZGluZ0Vycm9yc109XCIwXCIgY2xhc3M9XCJtYi0yXCI+XG4gICAgICA8aW5wdXQgc2VhbUlucHV0IFt0eXBlXT1cImRhdGVGb3JtYXRcIiBmb3JtQ29udHJvbE5hbWU9XCJmcm9tVGV4dFwiIHBsYWNlaG9sZGVyPVwiUmFuZ2UgU3RhcnRcIiBzZWFtQXV0b0ZvY3VzPlxuICAgIDwvc2VhbS1mb3JtLWZpZWxkPlxuXG4gICAgPHNlYW0tZm9ybS1maWVsZCBbbnVtUGFkZGluZ0Vycm9yc109XCIwXCIgY2xhc3M9XCJtYi0yXCI+XG4gICAgICA8aW5wdXQgc2VhbUlucHV0IFt0eXBlXT1cImRhdGVGb3JtYXRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0b1RleHRcIiBwbGFjZWhvbGRlcj1cIlJhbmdlIEVuZFwiPlxuICAgIDwvc2VhbS1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,48 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { map, startWith } from 'rxjs';
3
+ import { ControlContainer, FormGroupDirective } from '@angular/forms';
4
+ import { THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES } from '../models/columns-data-filters/models';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@theseam/ui-common/shared";
8
+ import * as i3 from "@theseam/ui-common/form-field";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "@ng-select/ng-select";
11
+ export class DatatableColumnFilterSearchNumericComponent {
12
+ constructor() {
13
+ this.searchTypes = [
14
+ { label: 'Less than (<)', value: 'lt' },
15
+ { label: 'Less than or equal to (<=)', value: 'lte' },
16
+ { label: 'Equal to (=)', value: 'eq' },
17
+ { label: 'Greater than (>)', value: 'gt' },
18
+ { label: 'Greater than or equal to (>=)', value: 'gte' },
19
+ { label: 'Between', value: 'between' },
20
+ { label: 'Not between', value: 'not-between' },
21
+ { label: 'Blank', value: 'blank' },
22
+ { label: 'Not blank', value: 'not-blank' },
23
+ ];
24
+ }
25
+ ngOnInit() {
26
+ this.showSearchInput$ = this.filterForm?.controls.searchType.valueChanges.pipe(startWith(this.filterForm?.controls.searchType.value), map(searchType => THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES.includes(searchType || '')));
27
+ this.showRangeInputs$ = this.filterForm?.controls.searchType.valueChanges.pipe(startWith(this.filterForm?.controls.searchType.value), map(searchType => THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES.includes(searchType || '')));
28
+ }
29
+ }
30
+ DatatableColumnFilterSearchNumericComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ DatatableColumnFilterSearchNumericComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnFilterSearchNumericComponent, selector: "seam-datatable-column-filter-search-numeric", inputs: { filterForm: "filterForm" }, ngImport: i0, template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\n </seam-form-field>\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"toText\" placeholder=\"Range End\">\n </seam-form-field>\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2.NgSelectExtraDirective, selector: "ng-select" }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], viewProviders: [
32
+ {
33
+ provide: ControlContainer,
34
+ useExisting: FormGroupDirective
35
+ }
36
+ ] });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchNumericComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: 'seam-datatable-column-filter-search-numeric', viewProviders: [
40
+ {
41
+ provide: ControlContainer,
42
+ useExisting: FormGroupDirective
43
+ }
44
+ ], template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"></ng-select>\n </seam-form-field>\n\n <ng-container *ngIf=\"showSearchInput$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\n </seam-form-field>\n </ng-container>\n\n <ng-container *ngIf=\"showRangeInputs$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"fromText\" placeholder=\"Range Start\" seamAutoFocus>\n </seam-form-field>\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"toText\" placeholder=\"Range End\">\n </seam-form-field>\n </ng-container>\n</ng-container>\n" }]
45
+ }], propDecorators: { filterForm: [{
46
+ type: Input
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItc2VhcmNoLW51bWVyaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtY29sdW1uLWZpbHRlci1zZWFyY2gtbnVtZXJpYy9kYXRhdGFibGUtY29sdW1uLWZpbHRlci1zZWFyY2gtbnVtZXJpYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1udW1lcmljL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1udW1lcmljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3hELE9BQU8sRUFBYyxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JFLE9BQU8sRUFBd0Ysc0RBQXNELEVBQUUscURBQXFELEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTs7Ozs7OztBQWEzUCxNQUFNLE9BQU8sMkNBQTJDO0lBWHhEO1FBYUUsZ0JBQVcsR0FBMEU7WUFDbkYsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDdkMsRUFBRSxLQUFLLEVBQUUsNEJBQTRCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNyRCxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUN0QyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzFDLEVBQUUsS0FBSyxFQUFFLCtCQUErQixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDeEQsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7WUFDOUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7U0FDM0MsQ0FBQTtLQW1CRjtJQVhDLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzVFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFEQUFxRCxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDcEcsQ0FBQTtRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDNUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFDckQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsc0RBQXNELENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUNyRyxDQUFBO0lBQ0gsQ0FBQzs7d0lBOUJVLDJDQUEyQzs0SEFBM0MsMkNBQTJDLHlIQ2hCeEQsNGdDQTBCQSx5M0VEakJpQjtRQUNiO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixXQUFXLEVBQUUsa0JBQWtCO1NBQ2hDO0tBQ0Y7MkZBRVUsMkNBQTJDO2tCQVh2RCxTQUFTOytCQUNFLDZDQUE2QyxpQkFHeEM7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsV0FBVyxFQUFFLGtCQUFrQjt5QkFDaEM7cUJBQ0Y7OEJBZ0JRLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJOdW1lcmljU2VhcmNoRm9ybSwgVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyTnVtZXJpY1NlYXJjaFR5cGUsIFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9OVU1FUklDX1JBTkdFX1NFQVJDSF9UWVBFUywgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX05VTUVSSUNfVEVYVF9TRUFSQ0hfVFlQRVMgfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1kYXRhLWZpbHRlcnMvbW9kZWxzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1udW1lcmljJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC1udW1lcmljLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItc2VhcmNoLW51bWVyaWMuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybUdyb3VwRGlyZWN0aXZlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUNvbHVtbkZpbHRlclNlYXJjaE51bWVyaWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHNlYXJjaFR5cGVzOiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJOdW1lcmljU2VhcmNoVHlwZSB9W10gPSBbXG4gICAgeyBsYWJlbDogJ0xlc3MgdGhhbiAoPCknLCB2YWx1ZTogJ2x0JyB9LFxuICAgIHsgbGFiZWw6ICdMZXNzIHRoYW4gb3IgZXF1YWwgdG8gKDw9KScsIHZhbHVlOiAnbHRlJyB9LFxuICAgIHsgbGFiZWw6ICdFcXVhbCB0byAoPSknLCB2YWx1ZTogJ2VxJyB9LFxuICAgIHsgbGFiZWw6ICdHcmVhdGVyIHRoYW4gKD4pJywgdmFsdWU6ICdndCcgfSxcbiAgICB7IGxhYmVsOiAnR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICg+PSknLCB2YWx1ZTogJ2d0ZScgfSxcbiAgICB7IGxhYmVsOiAnQmV0d2VlbicsIHZhbHVlOiAnYmV0d2VlbicgfSxcbiAgICB7IGxhYmVsOiAnTm90IGJldHdlZW4nLCB2YWx1ZTogJ25vdC1iZXR3ZWVuJyB9LFxuICAgIHsgbGFiZWw6ICdCbGFuaycsIHZhbHVlOiAnYmxhbmsnIH0sXG4gICAgeyBsYWJlbDogJ05vdCBibGFuaycsIHZhbHVlOiAnbm90LWJsYW5rJyB9LFxuICBdXG5cbiAgQElucHV0KCkgZmlsdGVyRm9ybTogVGhlU2VhbUNvbHVtbnNEYXRhRmlsdGVyTnVtZXJpY1NlYXJjaEZvcm0gfCB1bmRlZmluZWRcblxuICBwdWJsaWMgc2hvd1NlYXJjaElucHV0JDogT2JzZXJ2YWJsZTxib29sZWFuPiB8IHVuZGVmaW5lZFxuXG4gIHB1YmxpYyBzaG93UmFuZ2VJbnB1dHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgdW5kZWZpbmVkXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U2VhcmNoSW5wdXQkID0gdGhpcy5maWx0ZXJGb3JtPy5jb250cm9scy5zZWFyY2hUeXBlLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMuZmlsdGVyRm9ybT8uY29udHJvbHMuc2VhcmNoVHlwZS52YWx1ZSksXG4gICAgICBtYXAoc2VhcmNoVHlwZSA9PiBUSEVTRUFNX0NPTFVNTlNfREFUQV9GSUxURVJfTlVNRVJJQ19URVhUX1NFQVJDSF9UWVBFUy5pbmNsdWRlcyhzZWFyY2hUeXBlIHx8ICcnKSlcbiAgICApXG5cbiAgICB0aGlzLnNob3dSYW5nZUlucHV0cyQgPSB0aGlzLmZpbHRlckZvcm0/LmNvbnRyb2xzLnNlYXJjaFR5cGUudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgodGhpcy5maWx0ZXJGb3JtPy5jb250cm9scy5zZWFyY2hUeXBlLnZhbHVlKSxcbiAgICAgIG1hcChzZWFyY2hUeXBlID0+IFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9OVU1FUklDX1JBTkdFX1NFQVJDSF9UWVBFUy5pbmNsdWRlcyhzZWFyY2hUeXBlIHx8ICcnKSlcbiAgICApXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJGb3JtXCI+XG4gIDxzZWFtLWZvcm0tZmllbGQgW251bVBhZGRpbmdFcnJvcnNdPVwiMFwiIGNsYXNzPVwibWItMlwiPlxuICAgIDxuZy1zZWxlY3RcbiAgICAgIHNlYW1JbnB1dFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoVHlwZVwiXG4gICAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IHNlYXJjaCB0eXBlXCJcbiAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgIFtpdGVtc109XCJzZWFyY2hUeXBlc1wiPjwvbmctc2VsZWN0PlxuICA8L3NlYW0tZm9ybS1maWVsZD5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1NlYXJjaElucHV0JCB8IGFzeW5jXCI+XG4gICAgPHNlYW0tZm9ybS1maWVsZCBbbnVtUGFkZGluZ0Vycm9yc109XCIwXCIgY2xhc3M9XCJtYi0yXCI+XG4gICAgICA8aW5wdXQgc2VhbUlucHV0IGZvcm1Db250cm9sTmFtZT1cInNlYXJjaFRleHRcIiBwbGFjZWhvbGRlcj1cIlR5cGUgdG8gc2VhcmNoXCIgc2VhbUF1dG9Gb2N1cz5cbiAgICA8L3NlYW0tZm9ybS1maWVsZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dSYW5nZUlucHV0cyQgfCBhc3luY1wiPlxuICAgIDxzZWFtLWZvcm0tZmllbGQgW251bVBhZGRpbmdFcnJvcnNdPVwiMFwiIGNsYXNzPVwibWItMlwiPlxuICAgICAgPGlucHV0IHNlYW1JbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJmcm9tVGV4dFwiIHBsYWNlaG9sZGVyPVwiUmFuZ2UgU3RhcnRcIiBzZWFtQXV0b0ZvY3VzPlxuICAgIDwvc2VhbS1mb3JtLWZpZWxkPlxuICAgIDxzZWFtLWZvcm0tZmllbGQgW251bVBhZGRpbmdFcnJvcnNdPVwiMFwiIGNsYXNzPVwibWItMlwiPlxuICAgICAgPGlucHV0IHNlYW1JbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0b1RleHRcIiBwbGFjZWhvbGRlcj1cIlJhbmdlIEVuZFwiPlxuICAgIDwvc2VhbS1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,44 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { map, startWith } from 'rxjs';
3
+ import { ControlContainer, FormGroupDirective } from '@angular/forms';
4
+ import { THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES } from '../models/columns-data-filters/models';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@theseam/ui-common/shared";
8
+ import * as i3 from "@theseam/ui-common/form-field";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "@ng-select/ng-select";
11
+ export class DatatableColumnFilterSearchTextComponent {
12
+ constructor() {
13
+ this.searchTypes = [
14
+ { label: 'Contains', value: 'contains' },
15
+ { label: 'Does not contain', value: 'ncontains' },
16
+ { label: 'Matches exactly', value: 'eq' },
17
+ { label: 'Does not match exactly', value: 'neq' },
18
+ { label: 'Is blank', value: 'blank' },
19
+ { label: 'Is not blank', value: 'not-blank' },
20
+ ];
21
+ }
22
+ ngOnInit() {
23
+ this.showTextbox$ = this.filterForm?.controls.searchType.valueChanges.pipe(startWith(this.filterForm?.controls.searchType.value), map(value => THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES.includes(value || '')));
24
+ }
25
+ }
26
+ DatatableColumnFilterSearchTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27
+ DatatableColumnFilterSearchTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnFilterSearchTextComponent, selector: "seam-datatable-column-filter-search-text", inputs: { filterForm: "filterForm" }, ngImport: i0, template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n seamAutoFocus\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"></ng-select>\n </seam-form-field>\n <ng-container *ngIf=\"showTextbox$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\n </seam-form-field>\n <!-- TODO: implement this? Does not work with current Seam GraphQL/SQL Server implementation. -->\n <!-- <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <seam-checkbox seamInput formControlName=\"caseSensitive\">Case Sensitive</seam-checkbox>\n </seam-form-field> -->\n </ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.AutoFocusDirective, selector: "[seamAutoFocus]", inputs: ["seamAutoFocus"], exportAs: ["seamAutoFocus"] }, { kind: "directive", type: i2.NgSelectExtraDirective, selector: "ng-select" }, { kind: "component", type: i3.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput], seam-rich-text[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], viewProviders: [
28
+ {
29
+ provide: ControlContainer,
30
+ useExisting: FormGroupDirective
31
+ }
32
+ ] });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnFilterSearchTextComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'seam-datatable-column-filter-search-text', viewProviders: [
36
+ {
37
+ provide: ControlContainer,
38
+ useExisting: FormGroupDirective
39
+ }
40
+ ], template: "<ng-container *ngIf=\"filterForm\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <ng-select\n seamInput\n seamAutoFocus\n formControlName=\"searchType\"\n [clearable]=\"false\"\n placeholder=\"Select search type\"\n bindValue=\"value\"\n [items]=\"searchTypes\"></ng-select>\n </seam-form-field>\n <ng-container *ngIf=\"showTextbox$ | async\">\n <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <input seamInput formControlName=\"searchText\" placeholder=\"Type to search\" seamAutoFocus>\n </seam-form-field>\n <!-- TODO: implement this? Does not work with current Seam GraphQL/SQL Server implementation. -->\n <!-- <seam-form-field [numPaddingErrors]=\"0\" class=\"mb-2\">\n <seam-checkbox seamInput formControlName=\"caseSensitive\">Case Sensitive</seam-checkbox>\n </seam-form-field> -->\n </ng-container>\n</ng-container>\n" }]
41
+ }], propDecorators: { filterForm: [{
42
+ type: Input
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItc2VhcmNoLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtY29sdW1uLWZpbHRlci1zZWFyY2gtdGV4dC9kYXRhdGFibGUtY29sdW1uLWZpbHRlci1zZWFyY2gtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC10ZXh0L2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3hELE9BQU8sRUFBYyxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JFLE9BQU8sRUFBa0Ysa0RBQWtELEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTs7Ozs7OztBQWExTCxNQUFNLE9BQU8sd0NBQXdDO0lBWHJEO1FBYUUsZ0JBQVcsR0FBdUU7WUFDaEYsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDeEMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtZQUNqRCxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3pDLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDakQsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7U0FDOUMsQ0FBQTtLQVlGO0lBTkMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3hFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGtEQUFrRCxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDdkYsQ0FBQTtJQUNILENBQUM7O3FJQXBCVSx3Q0FBd0M7eUhBQXhDLHdDQUF3QyxzSENoQnJELDY1QkFxQkEseTNFRFppQjtRQUNiO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixXQUFXLEVBQUUsa0JBQWtCO1NBQ2hDO0tBQ0Y7MkZBRVUsd0NBQXdDO2tCQVhwRCxTQUFTOytCQUNFLDBDQUEwQyxpQkFHckM7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsV0FBVyxFQUFFLGtCQUFrQjt5QkFDaEM7cUJBQ0Y7OEJBYVEsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFRoZVNlYW1Db2x1bW5zRGF0YUZpbHRlclRleHRTZWFyY2hGb3JtLCBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJUZXh0U2VhcmNoVHlwZSwgVEhFU0VBTV9DT0xVTU5TX0RBVEFfRklMVEVSX1RFWFRfVEVYVF9TRUFSQ0hfVFlQRVMgfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1kYXRhLWZpbHRlcnMvbW9kZWxzJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC10ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGF0YWJsZS1jb2x1bW4tZmlsdGVyLXNlYXJjaC10ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YXRhYmxlLWNvbHVtbi1maWx0ZXItc2VhcmNoLXRleHQuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybUdyb3VwRGlyZWN0aXZlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUNvbHVtbkZpbHRlclNlYXJjaFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHNlYXJjaFR5cGVzOiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJUZXh0U2VhcmNoVHlwZSB9W10gPSBbXG4gICAgeyBsYWJlbDogJ0NvbnRhaW5zJywgdmFsdWU6ICdjb250YWlucycgfSxcbiAgICB7IGxhYmVsOiAnRG9lcyBub3QgY29udGFpbicsIHZhbHVlOiAnbmNvbnRhaW5zJyB9LFxuICAgIHsgbGFiZWw6ICdNYXRjaGVzIGV4YWN0bHknLCB2YWx1ZTogJ2VxJyB9LFxuICAgIHsgbGFiZWw6ICdEb2VzIG5vdCBtYXRjaCBleGFjdGx5JywgdmFsdWU6ICduZXEnIH0sXG4gICAgeyBsYWJlbDogJ0lzIGJsYW5rJywgdmFsdWU6ICdibGFuaycgfSxcbiAgICB7IGxhYmVsOiAnSXMgbm90IGJsYW5rJywgdmFsdWU6ICdub3QtYmxhbmsnIH0sXG4gIF1cblxuICBASW5wdXQoKSBmaWx0ZXJGb3JtOiBUaGVTZWFtQ29sdW1uc0RhdGFGaWx0ZXJUZXh0U2VhcmNoRm9ybSB8IHVuZGVmaW5lZFxuXG4gIHB1YmxpYyBzaG93VGV4dGJveCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCB1bmRlZmluZWRcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dUZXh0Ym94JCA9IHRoaXMuZmlsdGVyRm9ybT8uY29udHJvbHMuc2VhcmNoVHlwZS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmZpbHRlckZvcm0/LmNvbnRyb2xzLnNlYXJjaFR5cGUudmFsdWUpLFxuICAgICAgbWFwKHZhbHVlID0+IFRIRVNFQU1fQ09MVU1OU19EQVRBX0ZJTFRFUl9URVhUX1RFWFRfU0VBUkNIX1RZUEVTLmluY2x1ZGVzKHZhbHVlIHx8ICcnKSlcbiAgICApXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJGb3JtXCI+XG4gIDxzZWFtLWZvcm0tZmllbGQgW251bVBhZGRpbmdFcnJvcnNdPVwiMFwiIGNsYXNzPVwibWItMlwiPlxuICAgIDxuZy1zZWxlY3RcbiAgICAgIHNlYW1JbnB1dFxuICAgICAgc2VhbUF1dG9Gb2N1c1xuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoVHlwZVwiXG4gICAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IHNlYXJjaCB0eXBlXCJcbiAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgIFtpdGVtc109XCJzZWFyY2hUeXBlc1wiPjwvbmctc2VsZWN0PlxuICA8L3NlYW0tZm9ybS1maWVsZD5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUZXh0Ym94JCB8IGFzeW5jXCI+XG4gICAgPHNlYW0tZm9ybS1maWVsZCBbbnVtUGFkZGluZ0Vycm9yc109XCIwXCIgY2xhc3M9XCJtYi0yXCI+XG4gICAgICA8aW5wdXQgc2VhbUlucHV0IGZvcm1Db250cm9sTmFtZT1cInNlYXJjaFRleHRcIiBwbGFjZWhvbGRlcj1cIlR5cGUgdG8gc2VhcmNoXCIgc2VhbUF1dG9Gb2N1cz5cbiAgICA8L3NlYW0tZm9ybS1maWVsZD5cbiAgICA8IS0tIFRPRE86IGltcGxlbWVudCB0aGlzPyBEb2VzIG5vdCB3b3JrIHdpdGggY3VycmVudCBTZWFtIEdyYXBoUUwvU1FMIFNlcnZlciBpbXBsZW1lbnRhdGlvbi4gLS0+XG4gICAgPCEtLSA8c2VhbS1mb3JtLWZpZWxkIFtudW1QYWRkaW5nRXJyb3JzXT1cIjBcIiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgIDxzZWFtLWNoZWNrYm94IHNlYW1JbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjYXNlU2Vuc2l0aXZlXCI+Q2FzZSBTZW5zaXRpdmU8L3NlYW0tY2hlY2tib3g+XG4gICAgPC9zZWFtLWZvcm0tZmllbGQ+IC0tPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -43,7 +43,7 @@ export class DatatableColumnPreferencesButtonComponent {
43
43
  }
44
44
  }
45
45
  DatatableColumnPreferencesButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, deps: [{ token: i1.ColumnsAlterationsManagerService }], target: i0.ɵɵFactoryTarget.Component });
46
- DatatableColumnPreferencesButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnPreferencesButtonComponent, selector: "seam-datatable-column-preferences-button", ngImport: i0, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" class=\"btn btn-lightgray btn-sm\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Column Preferences\">\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\n", styles: [""], dependencies: [{ kind: "component", type: i2.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i2.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i2.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "directive", type: i4.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "component", type: i5.DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
+ DatatableColumnPreferencesButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableColumnPreferencesButtonComponent, selector: "seam-datatable-column-preferences-button", ngImport: i0, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" class=\"btn btn-lightgray btn-sm\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Column Preferences\">\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\n", styles: [""], dependencies: [{ kind: "component", type: i2.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i2.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i2.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "directive", type: i4.TheSeamPopoverDirective, selector: "[seamPopover]", inputs: ["seamPopover", "seamPopoverContext", "seamPopoverBaseWidth", "seamPopoverDisabled"], exportAs: ["seamPopover"] }, { kind: "component", type: i5.DatatableColumnPreferencesComponent, selector: "seam-datatable-column-preferences" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableColumnPreferencesButtonComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'seam-datatable-column-preferences-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #colPrefsTpl>\n <seam-datatable-column-preferences></seam-datatable-column-preferences>\n</ng-template>\n\n<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n [seamPopover]=\"colPrefsTpl\">\n Show/Hide Columns\n </button>\n\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"_resetColumns($event)\">\n Reset Columns\n </button>\n</seam-menu>\n\n<button type=\"button\" class=\"btn btn-lightgray btn-sm\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"_actionMenuPositions || []\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Column Preferences\">\n <seam-icon [icon]=\"icon\"></seam-icon>\n <span class=\"sr-only\">Column Preferences</span>\n</button>\n\n" }]
@@ -88,7 +88,7 @@ export class DatatableExportButtonComponent {
88
88
  }
89
89
  }
90
90
  DatatableExportButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableExportButtonComponent, deps: [{ token: THESEAM_DATATABLE }, { token: i1.ToastrService }, { token: i2.TheSeamLoadingOverlayService }, { token: i3.DynamicValueHelperService }, { token: THESEAM_DYNAMIC_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
91
- DatatableExportButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableExportButtonComponent, selector: "seam-datatable-export-button", inputs: { exporters: "exporters" }, ngImport: i0, template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\n {{ exp.label }}\n </button>\n</seam-menu>\n<button\n [seamMenuToggle]=\"menu\"\n seamButton\n theme=\"lightgray\"\n size=\"sm\"\n class=\"dropdown-toggle\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Export\"\n [disabled]=\"disabled\"\n >\n <seam-icon [icon]=\"icon\" class=\"mr-2\"></seam-icon>\n</button>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i5.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i5.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i5.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i6.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i7.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
+ DatatableExportButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DatatableExportButtonComponent, selector: "seam-datatable-export-button", inputs: { exporters: "exporters" }, ngImport: i0, template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\n {{ exp.label }}\n </button>\n</seam-menu>\n<button\n [seamMenuToggle]=\"menu\"\n seamButton\n theme=\"lightgray\"\n size=\"sm\"\n class=\"dropdown-toggle\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Export\"\n [disabled]=\"disabled\"\n >\n <seam-icon [icon]=\"icon\" class=\"mr-2\"></seam-icon>\n</button>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i5.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i5.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i5.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "component", type: i6.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i7.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
92
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DatatableExportButtonComponent, decorators: [{
93
93
  type: Component,
94
94
  args: [{ selector: 'seam-datatable-export-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<seam-menu #menu>\n <button *ngFor=\"let exp of exporters\"\n seamMenuItem\n [icon]=\"exp?.icon\"\n (click)=\"_onExporterClicked(exp)\">\n {{ exp.label }}\n </button>\n</seam-menu>\n<button\n [seamMenuToggle]=\"menu\"\n seamButton\n theme=\"lightgray\"\n size=\"sm\"\n class=\"dropdown-toggle\"\n style=\"padding-left: 10px; padding-right: 10px;\"\n title=\"Export\"\n [disabled]=\"disabled\"\n >\n <seam-icon [icon]=\"icon\" class=\"mr-2\"></seam-icon>\n</button>\n", styles: [":host{display:inline-block}\n"] }]
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
46
46
  type: ContentChildren,
47
47
  args: [DatatableFilterDirective]
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLW1lbnUtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvZGF0YXRhYmxlLW1lbnUtYmFyL2RhdGF0YWJsZS1tZW51LWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1tZW51LWJhci9kYXRhdGFibGUtbWVudS1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQTtBQUUvRixPQUFPLEVBQWUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQTs7QUFFbkYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQVE7SUFDakQsT0FBTyxFQUFFLDZCQUE2QjtJQUN0QyxpREFBaUQ7SUFDakQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztDQUN6RCxDQUFBO0FBUUQsTUFBTSxPQUFPLHlCQUF5QjtJQU50QztRQWtCVSxnQkFBVyxHQUFrQixFQUFFLENBQUE7UUFFdkIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQTtLQXNCbkU7SUFsQ0MsSUFDSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBc0Q7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQTtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBT00sT0FBTztRQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUI7WUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1lBQ3RFLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFFTixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVzthQUM1QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNsRSxPQUFPLENBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUUsQ0FBQTtJQUNwQyxDQUFDO0lBRU0sU0FBUyxDQUFDLFVBQXVCO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFTSxZQUFZLENBQUMsVUFBdUI7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQTtRQUNqRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUMxQyxDQUFDOztzSEFsQ1UseUJBQXlCOzBHQUF6Qix5QkFBeUIsa0RBRnpCLENBQUUsOEJBQThCLENBQUUsMkRBSTVCLHdCQUF3Qiw2QkNyQjNDLG9GQUdBOzJGRGdCYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0UseUJBQXlCLGFBR3hCLENBQUUsOEJBQThCLENBQUU7OEJBS3pDLGdCQUFnQjtzQkFEbkIsZUFBZTt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBJRGF0YUZpbHRlciwgVEhFU0VBTV9EQVRBX0ZJTFRFUl9DT05UQUlORVIgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZGF0YS1maWx0ZXJzJ1xuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1maWx0ZXIuZGlyZWN0aXZlJ1xuXG5leHBvcnQgY29uc3QgX1RIRVNFQU1fREFUQV9GSUxURVJfQ09OVEFJTkVSOiBhbnkgPSB7XG4gIHByb3ZpZGU6IFRIRVNFQU1fREFUQV9GSUxURVJfQ09OVEFJTkVSLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdXNlLWJlZm9yZS1kZWNsYXJlXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQpXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLW1lbnUtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGF0YWJsZS1tZW51LWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGF0YWJsZS1tZW51LWJhci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFsgX1RIRVNFQU1fREFUQV9GSUxURVJfQ09OVEFJTkVSIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCB7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmUpXG4gIGdldCBmaWx0ZXJEaXJlY3RpdmVzKCk6IFF1ZXJ5TGlzdDxEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmU+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyRGlyZWN0aXZlc1xuICB9XG4gIHNldCBmaWx0ZXJEaXJlY3RpdmVzKHZhbHVlOiBRdWVyeUxpc3Q8RGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2ZpbHRlckRpcmVjdGl2ZXMgPSB2YWx1ZVxuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQuZW1pdCh0aGlzLmZpbHRlcnMoKSlcbiAgfVxuICBwcml2YXRlIF9maWx0ZXJEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8RGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlPiB8IHVuZGVmaW5lZFxuXG4gIHByaXZhdGUgX2ZpbHRlcnNBcnI6IElEYXRhRmlsdGVyW10gPSBbXVxuXG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SURhdGFGaWx0ZXJbXT4oKVxuXG4gIHB1YmxpYyBmaWx0ZXJzKCk6IElEYXRhRmlsdGVyW10ge1xuICAgIGNvbnN0IGZEaXJlY3RpdmVzID0gdGhpcy5fZmlsdGVyRGlyZWN0aXZlc1xuICAgICAgPyB0aGlzLl9maWx0ZXJEaXJlY3RpdmVzLm1hcChmID0+IGYuZmlsdGVyKS5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKVxuICAgICAgOiBbXVxuXG4gICAgY29uc3QgZkFyciA9IHRoaXMuX2ZpbHRlcnNBcnJcbiAgICAuZmlsdGVyKGYgPT4gZkRpcmVjdGl2ZXMuZmluZEluZGV4KGZkID0+IGZkLnVpZCA9PT0gZi51aWQpID09PSAtMSlcbiAgICByZXR1cm4gWyAuLi5mQXJyLCAuLi5mRGlyZWN0aXZlcyBdXG4gIH1cblxuICBwdWJsaWMgYWRkRmlsdGVyKGRhdGFGaWx0ZXI6IElEYXRhRmlsdGVyKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsdGVyc0Fyci5wdXNoKGRhdGFGaWx0ZXIpXG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5lbWl0KHRoaXMuZmlsdGVycygpKVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUZpbHRlcihkYXRhRmlsdGVyOiBJRGF0YUZpbHRlcik6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlcnNBcnIgPSB0aGlzLl9maWx0ZXJzQXJyLmZpbHRlcihmID0+IGYgIT09IGRhdGFGaWx0ZXIpXG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5lbWl0KHRoaXMuZmlsdGVycygpKVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJiZy1saWdodCBib3JkZXIgcm91bmRlZCBwLTJcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLW1lbnUtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvZGF0YXRhYmxlLW1lbnUtYmFyL2RhdGF0YWJsZS1tZW51LWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1tZW51LWJhci9kYXRhdGFibGUtbWVudS1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQTtBQUUvRixPQUFPLEVBQW9DLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDakgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUE7O0FBRW5GLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFRO0lBQ2pELE9BQU8sRUFBRSw2QkFBNkI7SUFDdEMsaURBQWlEO0lBQ2pELFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7Q0FDekQsQ0FBQTtBQVFELE1BQU0sT0FBTyx5QkFBeUI7SUFOdEM7UUFrQlUsZ0JBQVcsR0FBa0IsRUFBRSxDQUFBO1FBRXZCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUE7S0FzQm5FO0lBbENDLElBQ0ksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFBO0lBQy9CLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLEtBQXNEO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQU9NLE9BQU87UUFDWixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCO1lBQ3hDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztZQUN0RSxDQUFDLENBQUMsRUFBRSxDQUFBO1FBRU4sTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVc7YUFDNUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEUsT0FBTyxDQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsV0FBVyxDQUFFLENBQUE7SUFDcEMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxVQUF1QjtRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRU0sWUFBWSxDQUFDLFVBQXVCO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUE7UUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDMUMsQ0FBQzs7c0hBbENVLHlCQUF5QjswR0FBekIseUJBQXlCLGtEQUZ6QixDQUFFLDhCQUE4QixDQUFFLDJEQUk1Qix3QkFBd0IsNkJDckIzQyxvRkFHQTsyRkRnQmEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHlCQUF5QixhQUd4QixDQUFFLDhCQUE4QixDQUFFOzhCQUt6QyxnQkFBZ0I7c0JBRG5CLGVBQWU7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgRGF0YUZpbHRlckNvbnRhaW5lciwgSURhdGFGaWx0ZXIsIFRIRVNFQU1fREFUQV9GSUxURVJfQ09OVEFJTkVSIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZmlsdGVycydcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgRGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9kYXRhdGFibGUtZmlsdGVyLmRpcmVjdGl2ZSdcblxuZXhwb3J0IGNvbnN0IF9USEVTRUFNX0RBVEFfRklMVEVSX0NPTlRBSU5FUjogYW55ID0ge1xuICBwcm92aWRlOiBUSEVTRUFNX0RBVEFfRklMVEVSX0NPTlRBSU5FUixcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVzZS1iZWZvcmUtZGVjbGFyZVxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRhdGFibGVNZW51QmFyQ29tcG9uZW50KVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZS1tZW51LWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhdGFibGUtbWVudS1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtbWVudS1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbIF9USEVTRUFNX0RBVEFfRklMVEVSX0NPTlRBSU5FUiBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQgaW1wbGVtZW50cyBEYXRhRmlsdGVyQ29udGFpbmVyIHtcblxuICBAQ29udGVudENoaWxkcmVuKERhdGF0YWJsZUZpbHRlckRpcmVjdGl2ZSlcbiAgZ2V0IGZpbHRlckRpcmVjdGl2ZXMoKTogUXVlcnlMaXN0PERhdGF0YWJsZUZpbHRlckRpcmVjdGl2ZT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJEaXJlY3RpdmVzXG4gIH1cbiAgc2V0IGZpbHRlckRpcmVjdGl2ZXModmFsdWU6IFF1ZXJ5TGlzdDxEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmU+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fZmlsdGVyRGlyZWN0aXZlcyA9IHZhbHVlXG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5lbWl0KHRoaXMuZmlsdGVycygpKVxuICB9XG4gIHByaXZhdGUgX2ZpbHRlckRpcmVjdGl2ZXM6IFF1ZXJ5TGlzdDxEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmU+IHwgdW5kZWZpbmVkXG5cbiAgcHJpdmF0ZSBfZmlsdGVyc0FycjogSURhdGFGaWx0ZXJbXSA9IFtdXG5cbiAgcHVibGljIHJlYWRvbmx5IGZpbHRlcnNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJRGF0YUZpbHRlcltdPigpXG5cbiAgcHVibGljIGZpbHRlcnMoKTogSURhdGFGaWx0ZXJbXSB7XG4gICAgY29uc3QgZkRpcmVjdGl2ZXMgPSB0aGlzLl9maWx0ZXJEaXJlY3RpdmVzXG4gICAgICA/IHRoaXMuX2ZpbHRlckRpcmVjdGl2ZXMubWFwKGYgPT4gZi5maWx0ZXIpLmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpXG4gICAgICA6IFtdXG5cbiAgICBjb25zdCBmQXJyID0gdGhpcy5fZmlsdGVyc0FyclxuICAgIC5maWx0ZXIoZiA9PiBmRGlyZWN0aXZlcy5maW5kSW5kZXgoZmQgPT4gZmQudWlkID09PSBmLnVpZCkgPT09IC0xKVxuICAgIHJldHVybiBbIC4uLmZBcnIsIC4uLmZEaXJlY3RpdmVzIF1cbiAgfVxuXG4gIHB1YmxpYyBhZGRGaWx0ZXIoZGF0YUZpbHRlcjogSURhdGFGaWx0ZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9maWx0ZXJzQXJyLnB1c2goZGF0YUZpbHRlcilcbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkLmVtaXQodGhpcy5maWx0ZXJzKCkpXG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRmlsdGVyKGRhdGFGaWx0ZXI6IElEYXRhRmlsdGVyKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsdGVyc0FyciA9IHRoaXMuX2ZpbHRlcnNBcnIuZmlsdGVyKGYgPT4gZiAhPT0gZGF0YUZpbHRlcilcbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkLmVtaXQodGhpcy5maWx0ZXJzKCkpXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImJnLWxpZ2h0IGJvcmRlciByb3VuZGVkIHAtMlwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==