@abp/ng.theme.shared 5.0.1 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/{esm2015/abp-ng.theme.shared.js → esm2020/abp-ng.theme.shared.mjs} +0 -0
  2. package/{esm2015/extensions/abp-ng.theme.shared-extensions.js → esm2020/extensions/abp-ng.theme.shared-extensions.mjs} +0 -0
  3. package/esm2020/extensions/lib/adapters/date-time.adapter.mjs +44 -0
  4. package/{esm2015/extensions/lib/adapters/date.adapter.js → esm2020/extensions/lib/adapters/date.adapter.mjs} +4 -4
  5. package/{esm2015/extensions/lib/adapters/time.adapter.js → esm2020/extensions/lib/adapters/time.adapter.mjs} +4 -4
  6. package/{esm2015/extensions/lib/components/abstract-actions/abstract-actions.component.js → esm2020/extensions/lib/components/abstract-actions/abstract-actions.component.mjs} +4 -4
  7. package/{esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js → esm2020/extensions/lib/components/date-time-picker/date-time-picker.component.mjs} +5 -5
  8. package/esm2020/extensions/lib/components/extensible-form/extensible-form-prop.component.mjs +159 -0
  9. package/esm2020/extensions/lib/components/extensible-form/extensible-form.component.mjs +64 -0
  10. package/esm2020/extensions/lib/components/extensible-table/extensible-table.component.mjs +128 -0
  11. package/esm2020/extensions/lib/components/grid-actions/grid-actions.component.mjs +39 -0
  12. package/esm2020/extensions/lib/components/page-toolbar/page-toolbar.component.mjs +40 -0
  13. package/{esm2015/extensions/lib/constants/extra-properties.js → esm2020/extensions/lib/constants/extra-properties.mjs} +0 -0
  14. package/{esm2015/extensions/lib/directives/disabled.directive.js → esm2020/extensions/lib/directives/disabled.directive.mjs} +4 -4
  15. package/{esm2015/extensions/lib/directives/prop-data.directive.js → esm2020/extensions/lib/directives/prop-data.directive.mjs} +4 -4
  16. package/{esm2015/extensions/lib/enums/props.enum.js → esm2020/extensions/lib/enums/props.enum.mjs} +0 -0
  17. package/{esm2015/extensions/lib/models/actions.js → esm2020/extensions/lib/models/actions.mjs} +0 -0
  18. package/{esm2015/extensions/lib/models/entity-actions.js → esm2020/extensions/lib/models/entity-actions.mjs} +0 -0
  19. package/esm2020/extensions/lib/models/entity-props.mjs +36 -0
  20. package/{esm2015/extensions/lib/models/form-props.js → esm2020/extensions/lib/models/form-props.mjs} +0 -0
  21. package/{esm2015/extensions/lib/models/internal/object-extensions.js → esm2020/extensions/lib/models/internal/object-extensions.mjs} +0 -0
  22. package/{esm2015/extensions/lib/models/object-extensions.js → esm2020/extensions/lib/models/object-extensions.mjs} +0 -0
  23. package/{esm2015/extensions/lib/models/props.js → esm2020/extensions/lib/models/props.mjs} +0 -0
  24. package/{esm2015/extensions/lib/models/toolbar-actions.js → esm2020/extensions/lib/models/toolbar-actions.mjs} +0 -0
  25. package/{esm2015/extensions/lib/services/extensions.service.js → esm2020/extensions/lib/services/extensions.service.mjs} +4 -4
  26. package/{esm2015/extensions/lib/tokens/extensions.token.js → esm2020/extensions/lib/tokens/extensions.token.mjs} +0 -0
  27. package/{esm2015/extensions/lib/ui-extensions.module.js → esm2020/extensions/lib/ui-extensions.module.mjs} +9 -9
  28. package/{esm2015/extensions/lib/utils/actions.util.js → esm2020/extensions/lib/utils/actions.util.mjs} +0 -0
  29. package/{esm2015/extensions/lib/utils/enum.util.js → esm2020/extensions/lib/utils/enum.util.mjs} +0 -0
  30. package/{esm2015/extensions/lib/utils/factory.util.js → esm2020/extensions/lib/utils/factory.util.mjs} +0 -0
  31. package/{esm2015/extensions/lib/utils/form-props.util.js → esm2020/extensions/lib/utils/form-props.util.mjs} +0 -0
  32. package/{esm2015/extensions/lib/utils/localization.util.js → esm2020/extensions/lib/utils/localization.util.mjs} +0 -0
  33. package/{esm2015/extensions/lib/utils/props.util.js → esm2020/extensions/lib/utils/props.util.mjs} +0 -0
  34. package/{esm2015/extensions/lib/utils/state.util.js → esm2020/extensions/lib/utils/state.util.mjs} +2 -3
  35. package/{esm2015/extensions/lib/utils/typeahead.util.js → esm2020/extensions/lib/utils/typeahead.util.mjs} +0 -0
  36. package/{esm2015/extensions/lib/utils/validation.util.js → esm2020/extensions/lib/utils/validation.util.mjs} +0 -0
  37. package/{esm2015/extensions/public-api.js → esm2020/extensions/public-api.mjs} +0 -0
  38. package/{esm2015/lib/animations/bounce.animations.js → esm2020/lib/animations/bounce.animations.mjs} +0 -0
  39. package/{esm2015/lib/animations/collapse.animations.js → esm2020/lib/animations/collapse.animations.mjs} +0 -0
  40. package/{esm2015/lib/animations/fade.animations.js → esm2020/lib/animations/fade.animations.mjs} +0 -0
  41. package/{esm2015/lib/animations/index.js → esm2020/lib/animations/index.mjs} +0 -0
  42. package/{esm2015/lib/animations/modal.animations.js → esm2020/lib/animations/modal.animations.mjs} +0 -0
  43. package/{esm2015/lib/animations/slide.animations.js → esm2020/lib/animations/slide.animations.mjs} +0 -0
  44. package/{esm2015/lib/animations/toast.animations.js → esm2020/lib/animations/toast.animations.mjs} +0 -0
  45. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +43 -0
  46. package/esm2020/lib/components/breadcrumb-items/breadcrumb-items.component.mjs +19 -0
  47. package/esm2020/lib/components/button/button.component.mjs +97 -0
  48. package/esm2020/lib/components/confirmation/confirmation.component.mjs +36 -0
  49. package/esm2020/lib/components/http-error-wrapper/http-error-wrapper.component.mjs +59 -0
  50. package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
  51. package/{esm2015/lib/components/loader-bar/loader-bar.component.js → esm2020/lib/components/loader-bar/loader-bar.component.mjs} +6 -11
  52. package/{esm2015/lib/components/loading/loading.component.js → esm2020/lib/components/loading/loading.component.mjs} +5 -5
  53. package/{esm2015/lib/components/modal/modal-close.directive.js → esm2020/lib/components/modal/modal-close.directive.mjs} +5 -6
  54. package/{esm2015/lib/components/modal/modal-ref.service.js → esm2020/lib/components/modal/modal-ref.service.mjs} +4 -4
  55. package/esm2020/lib/components/modal/modal.component.mjs +189 -0
  56. package/esm2020/lib/components/toast/toast.component.mjs +55 -0
  57. package/esm2020/lib/components/toast-container/toast-container.component.mjs +43 -0
  58. package/{esm2015/lib/constants/styles.js → esm2020/lib/constants/styles.mjs} +0 -0
  59. package/{esm2015/lib/constants/validation.js → esm2020/lib/constants/validation.mjs} +0 -0
  60. package/{esm2015/lib/directives/ellipsis.directive.js → esm2020/lib/directives/ellipsis.directive.mjs} +8 -8
  61. package/{esm2015/lib/directives/index.js → esm2020/lib/directives/index.mjs} +0 -0
  62. package/esm2020/lib/directives/loading.directive.mjs +89 -0
  63. package/{esm2015/lib/directives/ngx-datatable-default.directive.js → esm2020/lib/directives/ngx-datatable-default.directive.mjs} +4 -4
  64. package/{esm2015/lib/directives/ngx-datatable-list.directive.js → esm2020/lib/directives/ngx-datatable-list.directive.mjs} +4 -4
  65. package/{esm2015/lib/enums/index.js → esm2020/lib/enums/index.mjs} +0 -0
  66. package/{esm2015/lib/enums/route-names.js → esm2020/lib/enums/route-names.mjs} +0 -0
  67. package/{esm2015/lib/handlers/document-dir.handler.js → esm2020/lib/handlers/document-dir.handler.mjs} +4 -4
  68. package/esm2020/lib/handlers/error.handler.mjs +286 -0
  69. package/{esm2015/lib/handlers/index.js → esm2020/lib/handlers/index.mjs} +0 -0
  70. package/{esm2015/lib/models/common.js → esm2020/lib/models/common.mjs} +0 -0
  71. package/{esm2015/lib/models/confirmation.js → esm2020/lib/models/confirmation.mjs} +0 -0
  72. package/esm2020/lib/models/index.mjs +7 -0
  73. package/esm2020/lib/models/nav-item.mjs +7 -0
  74. package/{esm2015/lib/models/statistics.js → esm2020/lib/models/statistics.mjs} +0 -0
  75. package/{esm2015/lib/models/toaster.js → esm2020/lib/models/toaster.mjs} +0 -0
  76. package/esm2020/lib/models/user-menu.mjs +4 -0
  77. package/{esm2015/lib/providers/index.js → esm2020/lib/providers/index.mjs} +0 -0
  78. package/{esm2015/lib/providers/ng-bootstrap-config.provider.js → esm2020/lib/providers/ng-bootstrap-config.provider.mjs} +0 -0
  79. package/{esm2015/lib/providers/route.provider.js → esm2020/lib/providers/route.provider.mjs} +0 -0
  80. package/esm2020/lib/services/abstract-menu.service.mjs +50 -0
  81. package/{esm2015/lib/services/confirmation.service.js → esm2020/lib/services/confirmation.service.mjs} +4 -4
  82. package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +2 -1
  83. package/esm2020/lib/services/nav-items.service.mjs +17 -0
  84. package/esm2020/lib/services/page-alert.service.mjs +28 -0
  85. package/esm2020/lib/services/toaster.service.mjs +103 -0
  86. package/esm2020/lib/services/user-menu.service.mjs +17 -0
  87. package/esm2020/lib/theme-shared.module.mjs +162 -0
  88. package/{esm2015/lib/tokens/append-content.token.js → esm2020/lib/tokens/append-content.token.mjs} +0 -0
  89. package/esm2020/lib/tokens/http-error.token.mjs +14 -0
  90. package/{esm2015/lib/tokens/index.js → esm2020/lib/tokens/index.mjs} +0 -0
  91. package/{esm2015/lib/tokens/ngx-datatable-messages.token.js → esm2020/lib/tokens/ngx-datatable-messages.token.mjs} +0 -0
  92. package/{esm2015/lib/tokens/suppress-unsaved-changes-warning.token.js → esm2020/lib/tokens/suppress-unsaved-changes-warning.token.mjs} +0 -0
  93. package/{esm2015/lib/utils/date-parser-formatter.js → esm2020/lib/utils/date-parser-formatter.mjs} +5 -6
  94. package/{esm2015/lib/utils/index.js → esm2020/lib/utils/index.mjs} +0 -0
  95. package/{esm2015/lib/utils/validation-utils.js → esm2020/lib/utils/validation-utils.mjs} +0 -0
  96. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  97. package/{esm2015/testing/abp-ng.theme.shared-testing.js → esm2020/testing/abp-ng.theme.shared-testing.mjs} +0 -0
  98. package/{esm2015/testing/lib/models/config.js → esm2020/testing/lib/models/config.mjs} +0 -0
  99. package/{esm2015/testing/lib/models/index.js → esm2020/testing/lib/models/index.mjs} +0 -0
  100. package/esm2020/testing/lib/theme-shared-testing.module.mjs +46 -0
  101. package/{esm2015/testing/public-api.js → esm2020/testing/public-api.mjs} +0 -0
  102. package/extensions/lib/models/entity-props.d.ts +1 -1
  103. package/extensions/lib/tokens/extensions.token.d.ts +1 -1
  104. package/extensions/package.json +5 -5
  105. package/fesm2015/abp-ng.theme.shared-extensions.mjs +1329 -0
  106. package/fesm2015/abp-ng.theme.shared-extensions.mjs.map +1 -0
  107. package/fesm2015/{abp-ng.theme.shared-testing.js → abp-ng.theme.shared-testing.mjs} +5 -5
  108. package/fesm2015/abp-ng.theme.shared-testing.mjs.map +1 -0
  109. package/fesm2015/{abp-ng.theme.shared.js → abp-ng.theme.shared.mjs} +174 -175
  110. package/fesm2015/abp-ng.theme.shared.mjs.map +1 -0
  111. package/{fesm2015/abp-ng.theme.shared-extensions.js → fesm2020/abp-ng.theme.shared-extensions.mjs} +80 -99
  112. package/fesm2020/abp-ng.theme.shared-extensions.mjs.map +1 -0
  113. package/fesm2020/abp-ng.theme.shared-testing.mjs +57 -0
  114. package/fesm2020/abp-ng.theme.shared-testing.mjs.map +1 -0
  115. package/fesm2020/abp-ng.theme.shared.mjs +2202 -0
  116. package/fesm2020/abp-ng.theme.shared.mjs.map +1 -0
  117. package/lib/models/index.d.ts +2 -1
  118. package/lib/models/user-menu.d.ts +8 -0
  119. package/lib/services/abstract-menu.service.d.ts +12 -0
  120. package/lib/services/index.d.ts +1 -0
  121. package/lib/services/nav-items.service.d.ts +3 -8
  122. package/lib/services/user-menu.service.d.ts +8 -0
  123. package/package.json +38 -8
  124. package/testing/package.json +5 -5
  125. package/bundles/abp-ng.theme.shared-extensions.umd.js +0 -1904
  126. package/bundles/abp-ng.theme.shared-extensions.umd.js.map +0 -1
  127. package/bundles/abp-ng.theme.shared-testing.umd.js +0 -82
  128. package/bundles/abp-ng.theme.shared-testing.umd.js.map +0 -1
  129. package/bundles/abp-ng.theme.shared.umd.js +0 -2506
  130. package/bundles/abp-ng.theme.shared.umd.js.map +0 -1
  131. package/esm2015/extensions/lib/adapters/date-time.adapter.js +0 -34
  132. package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js +0 -164
  133. package/esm2015/extensions/lib/components/extensible-form/extensible-form.component.js +0 -70
  134. package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js +0 -134
  135. package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js +0 -45
  136. package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js +0 -46
  137. package/esm2015/extensions/lib/models/entity-props.js +0 -34
  138. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +0 -49
  139. package/esm2015/lib/components/breadcrumb-items/breadcrumb-items.component.js +0 -22
  140. package/esm2015/lib/components/button/button.component.js +0 -98
  141. package/esm2015/lib/components/confirmation/confirmation.component.js +0 -40
  142. package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js +0 -65
  143. package/esm2015/lib/components/modal/modal.component.js +0 -188
  144. package/esm2015/lib/components/toast/toast.component.js +0 -61
  145. package/esm2015/lib/components/toast-container/toast-container.component.js +0 -49
  146. package/esm2015/lib/directives/loading.directive.js +0 -90
  147. package/esm2015/lib/handlers/error.handler.js +0 -292
  148. package/esm2015/lib/models/index.js +0 -6
  149. package/esm2015/lib/models/nav-item.js +0 -7
  150. package/esm2015/lib/services/nav-items.service.js +0 -51
  151. package/esm2015/lib/services/page-alert.service.js +0 -26
  152. package/esm2015/lib/services/toaster.service.js +0 -103
  153. package/esm2015/lib/theme-shared.module.js +0 -165
  154. package/esm2015/lib/tokens/http-error.token.js +0 -10
  155. package/esm2015/testing/lib/theme-shared-testing.module.js +0 -43
  156. package/fesm2015/abp-ng.theme.shared-extensions.js.map +0 -1
  157. package/fesm2015/abp-ng.theme.shared-testing.js.map +0 -1
  158. package/fesm2015/abp-ng.theme.shared.js.map +0 -1
@@ -17,10 +17,10 @@ export class ModalRefService {
17
17
  this.modalRefs.forEach(modal => modal.dismiss(mode));
18
18
  }
19
19
  }
20
- ModalRefService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ModalRefService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
- ModalRefService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ModalRefService, providedIn: 'root' });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ModalRefService, decorators: [{
20
+ ModalRefService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ModalRefService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
+ ModalRefService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ModalRefService, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ModalRefService, decorators: [{
23
23
  type: Injectable,
24
24
  args: [{ providedIn: 'root' }]
25
25
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLXJlZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzNDLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRUUsY0FBUyxHQUF1QixFQUFFLENBQUM7S0FlcEM7SUFiQyxRQUFRLENBQUMsS0FBdUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELFVBQVUsQ0FBQyxLQUF1QjtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsSUFBc0I7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7NkdBZlUsZUFBZTtpSEFBZixlQUFlLGNBREYsTUFBTTs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgdHlwZSBNb2RhbERpc21pc3NNb2RlID0gJ2hhcmQnIHwgJ3NvZnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaXNtaXNzYWJsZU1vZGFsIHtcclxuICBkaXNtaXNzKG1vZGU6IE1vZGFsRGlzbWlzc01vZGUpOiB2b2lkO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxSZWZTZXJ2aWNlIHtcclxuICBtb2RhbFJlZnM6IERpc21pc3NhYmxlTW9kYWxbXSA9IFtdO1xyXG5cclxuICByZWdpc3Rlcihtb2RhbDogRGlzbWlzc2FibGVNb2RhbCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZnMucHVzaChtb2RhbCk7XHJcbiAgfVxyXG4gIHVucmVnaXN0ZXIobW9kYWw6IERpc21pc3NhYmxlTW9kYWwpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tb2RhbFJlZnMuaW5kZXhPZihtb2RhbCk7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLm1vZGFsUmVmcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzbWlzc0FsbChtb2RlOiBNb2RhbERpc21pc3NNb2RlKSB7XHJcbiAgICB0aGlzLm1vZGFsUmVmcy5mb3JFYWNoKG1vZGFsID0+IG1vZGFsLmRpc21pc3MobW9kZSkpO1xyXG4gIH1cclxufVxyXG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLXJlZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzNDLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRUUsY0FBUyxHQUF1QixFQUFFLENBQUM7S0FlcEM7SUFiQyxRQUFRLENBQUMsS0FBdUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELFVBQVUsQ0FBQyxLQUF1QjtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsSUFBc0I7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7NEdBZlUsZUFBZTtnSEFBZixlQUFlLGNBREYsTUFBTTsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgdHlwZSBNb2RhbERpc21pc3NNb2RlID0gJ2hhcmQnIHwgJ3NvZnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaXNtaXNzYWJsZU1vZGFsIHtcclxuICBkaXNtaXNzKG1vZGU6IE1vZGFsRGlzbWlzc01vZGUpOiB2b2lkO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxSZWZTZXJ2aWNlIHtcclxuICBtb2RhbFJlZnM6IERpc21pc3NhYmxlTW9kYWxbXSA9IFtdO1xyXG5cclxuICByZWdpc3Rlcihtb2RhbDogRGlzbWlzc2FibGVNb2RhbCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZnMucHVzaChtb2RhbCk7XHJcbiAgfVxyXG4gIHVucmVnaXN0ZXIobW9kYWw6IERpc21pc3NhYmxlTW9kYWwpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tb2RhbFJlZnMuaW5kZXhPZihtb2RhbCk7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLm1vZGFsUmVmcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzbWlzc0FsbChtb2RlOiBNb2RhbERpc21pc3NNb2RlKSB7XHJcbiAgICB0aGlzLm1vZGFsUmVmcy5mb3JFYWNoKG1vZGFsID0+IG1vZGFsLmRpc21pc3MobW9kZSkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,189 @@
1
+ import { SubscriptionService, uuid } from '@abp/ng.core';
2
+ import { Component, ContentChild, EventEmitter, Inject, Input, Optional, Output, TemplateRef, ViewChild, } from '@angular/core';
3
+ import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
4
+ import { fromEvent, Subject } from 'rxjs';
5
+ import { debounceTime, distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';
6
+ import { Confirmation } from '../../models/confirmation';
7
+ import { ConfirmationService } from '../../services/confirmation.service';
8
+ import { SUPPRESS_UNSAVED_CHANGES_WARNING } from '../../tokens/suppress-unsaved-changes-warning.token';
9
+ import { ButtonComponent } from '../button/button.component';
10
+ import { ModalRefService } from './modal-ref.service';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "../../services/confirmation.service";
13
+ import * as i2 from "@abp/ng.core";
14
+ import * as i3 from "@ng-bootstrap/ng-bootstrap";
15
+ import * as i4 from "./modal-ref.service";
16
+ import * as i5 from "@angular/common";
17
+ export class ModalComponent {
18
+ constructor(confirmationService, subscription, suppressUnsavedChangesWarningToken, modal, modalRefService) {
19
+ this.confirmationService = confirmationService;
20
+ this.subscription = subscription;
21
+ this.suppressUnsavedChangesWarningToken = suppressUnsavedChangesWarningToken;
22
+ this.modal = modal;
23
+ this.modalRefService = modalRefService;
24
+ this.options = {};
25
+ this.suppressUnsavedChangesWarning = this.suppressUnsavedChangesWarningToken;
26
+ this.visibleChange = new EventEmitter();
27
+ this.init = new EventEmitter();
28
+ this.appear = new EventEmitter();
29
+ this.disappear = new EventEmitter();
30
+ this._visible = false;
31
+ this._busy = false;
32
+ this.isConfirmationOpen = false;
33
+ this.destroy$ = new Subject();
34
+ this.modalIdentifier = `modal-${uuid()}`;
35
+ this.toggle$ = new Subject();
36
+ this.initToggleStream();
37
+ }
38
+ get visible() {
39
+ return this._visible;
40
+ }
41
+ set visible(value) {
42
+ if (typeof value !== 'boolean')
43
+ return;
44
+ this.toggle$.next(value);
45
+ }
46
+ get busy() {
47
+ return this._busy;
48
+ }
49
+ set busy(value) {
50
+ if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {
51
+ this.abpSubmit.loading = value;
52
+ }
53
+ this._busy = value;
54
+ }
55
+ get modalWindowRef() {
56
+ return document.querySelector(`ngb-modal-window.${this.modalIdentifier}`);
57
+ }
58
+ get isFormDirty() {
59
+ return Boolean(this.modalWindowRef?.querySelector('.ng-dirty'));
60
+ }
61
+ ngOnInit() {
62
+ this.modalRefService.register(this);
63
+ }
64
+ dismiss(mode) {
65
+ switch (mode) {
66
+ case 'hard':
67
+ this.visible = false;
68
+ break;
69
+ case 'soft':
70
+ this.close();
71
+ break;
72
+ default:
73
+ break;
74
+ }
75
+ }
76
+ initToggleStream() {
77
+ this.subscription.addOne(this.toggle$.pipe(debounceTime(0), distinctUntilChanged()), value => this.toggle(value));
78
+ }
79
+ toggle(value) {
80
+ this._visible = value;
81
+ this.visibleChange.emit(value);
82
+ if (!value) {
83
+ this.modalRef?.dismiss();
84
+ this.disappear.emit();
85
+ this.destroy$.next();
86
+ return;
87
+ }
88
+ setTimeout(() => this.listen(), 0);
89
+ this.modalRef = this.modal.open(this.modalContent, {
90
+ size: 'md',
91
+ centered: false,
92
+ keyboard: false,
93
+ scrollable: true,
94
+ beforeDismiss: () => {
95
+ if (!this.visible)
96
+ return true;
97
+ this.close();
98
+ return !this.visible;
99
+ },
100
+ ...this.options,
101
+ windowClass: `${this.options.windowClass || ''} ${this.modalIdentifier}`,
102
+ });
103
+ this.appear.emit();
104
+ }
105
+ ngOnDestroy() {
106
+ this.modalRefService.unregister(this);
107
+ this.toggle(false);
108
+ this.destroy$.next();
109
+ }
110
+ close() {
111
+ if (this.busy)
112
+ return;
113
+ if (this.isFormDirty && !this.suppressUnsavedChangesWarning) {
114
+ if (this.isConfirmationOpen)
115
+ return;
116
+ this.isConfirmationOpen = true;
117
+ this.confirmationService
118
+ .warn('AbpUi::AreYouSureYouWantToCancelEditingWarningMessage', 'AbpUi::AreYouSure', { dismissible: false })
119
+ .subscribe((status) => {
120
+ this.isConfirmationOpen = false;
121
+ if (status === Confirmation.Status.confirm) {
122
+ this.visible = false;
123
+ }
124
+ });
125
+ }
126
+ else {
127
+ this.visible = false;
128
+ }
129
+ }
130
+ listen() {
131
+ if (this.modalWindowRef) {
132
+ fromEvent(this.modalWindowRef, 'keyup')
133
+ .pipe(takeUntil(this.destroy$), debounceTime(150), filter((key) => key && key.key === 'Escape'))
134
+ .subscribe(() => this.close());
135
+ }
136
+ fromEvent(window, 'beforeunload')
137
+ .pipe(takeUntil(this.destroy$))
138
+ .subscribe(event => {
139
+ // TODO: check this
140
+ if (!this.isFormDirty || this.suppressUnsavedChangesWarning) {
141
+ event.preventDefault();
142
+ }
143
+ });
144
+ this.init.emit();
145
+ }
146
+ }
147
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ConfirmationService }, { token: i2.SubscriptionService }, { token: SUPPRESS_UNSAVED_CHANGES_WARNING, optional: true }, { token: i3.NgbModal }, { token: i4.ModalRefService }], target: i0.ɵɵFactoryTarget.Component });
148
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ModalComponent, selector: "abp-modal", inputs: { visible: "visible", busy: "busy", options: "options", suppressUnsavedChangesWarning: "suppressUnsavedChangesWarning" }, outputs: { visibleChange: "visibleChange", init: "init", appear: "appear", disappear: "disappear" }, providers: [SubscriptionService], queries: [{ propertyName: "abpHeader", first: true, predicate: ["abpHeader"], descendants: true }, { propertyName: "abpBody", first: true, predicate: ["abpBody"], descendants: true }, { propertyName: "abpFooter", first: true, predicate: ["abpFooter"], descendants: true }, { propertyName: "abpSubmit", first: true, predicate: ButtonComponent, descendants: true, read: ButtonComponent }], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\r\n\r\n<ng-template #modalContent let-modal>\r\n <div *ngIf=\"abpHeader\" id=\"abp-modal-header\" class=\"modal-header\">\r\n <ng-container *ngTemplateOutlet=\"abpHeader\"></ng-container>\r\n \u200B\r\n <button\r\n id=\"abp-modal-close-button\"\r\n type=\"button\"\r\n class=\"btn-sm btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"modal.dismiss()\"\r\n ></button>\r\n </div>\r\n <div *ngIf=\"abpBody\" id=\"abp-modal-body\" class=\"modal-body\">\r\n <ng-container *ngTemplateOutlet=\"abpBody\"></ng-container>\r\n </div>\r\n <div *ngIf=\"abpFooter\" id=\"abp-modal-footer\" class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"abpFooter\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".modal.show{display:block!important}.modal-backdrop{opacity:.8}.modal::-webkit-scrollbar{width:7px}.modal::-webkit-scrollbar-track{background:#ddd}.modal::-webkit-scrollbar-thumb{background:#8a8686}.modal-dialog{z-index:1050}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ModalComponent, decorators: [{
150
+ type: Component,
151
+ args: [{ selector: 'abp-modal', providers: [SubscriptionService], template: "<ng-content></ng-content>\r\n\r\n<ng-template #modalContent let-modal>\r\n <div *ngIf=\"abpHeader\" id=\"abp-modal-header\" class=\"modal-header\">\r\n <ng-container *ngTemplateOutlet=\"abpHeader\"></ng-container>\r\n \u200B\r\n <button\r\n id=\"abp-modal-close-button\"\r\n type=\"button\"\r\n class=\"btn-sm btn-close\"\r\n aria-label=\"Close\"\r\n (click)=\"modal.dismiss()\"\r\n ></button>\r\n </div>\r\n <div *ngIf=\"abpBody\" id=\"abp-modal-body\" class=\"modal-body\">\r\n <ng-container *ngTemplateOutlet=\"abpBody\"></ng-container>\r\n </div>\r\n <div *ngIf=\"abpFooter\" id=\"abp-modal-footer\" class=\"modal-footer\">\r\n <ng-container *ngTemplateOutlet=\"abpFooter\"></ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: [".modal.show{display:block!important}.modal-backdrop{opacity:.8}.modal::-webkit-scrollbar{width:7px}.modal::-webkit-scrollbar-track{background:#ddd}.modal::-webkit-scrollbar-thumb{background:#8a8686}.modal-dialog{z-index:1050}\n"] }]
152
+ }], ctorParameters: function () { return [{ type: i1.ConfirmationService }, { type: i2.SubscriptionService }, { type: undefined, decorators: [{
153
+ type: Optional
154
+ }, {
155
+ type: Inject,
156
+ args: [SUPPRESS_UNSAVED_CHANGES_WARNING]
157
+ }] }, { type: i3.NgbModal }, { type: i4.ModalRefService }]; }, propDecorators: { visible: [{
158
+ type: Input
159
+ }], busy: [{
160
+ type: Input
161
+ }], options: [{
162
+ type: Input
163
+ }], suppressUnsavedChangesWarning: [{
164
+ type: Input
165
+ }], modalContent: [{
166
+ type: ViewChild,
167
+ args: ['modalContent']
168
+ }], abpHeader: [{
169
+ type: ContentChild,
170
+ args: ['abpHeader', { static: false }]
171
+ }], abpBody: [{
172
+ type: ContentChild,
173
+ args: ['abpBody', { static: false }]
174
+ }], abpFooter: [{
175
+ type: ContentChild,
176
+ args: ['abpFooter', { static: false }]
177
+ }], abpSubmit: [{
178
+ type: ContentChild,
179
+ args: [ButtonComponent, { static: false, read: ButtonComponent }]
180
+ }], visibleChange: [{
181
+ type: Output
182
+ }], init: [{
183
+ type: Output
184
+ }], appear: [{
185
+ type: Output
186
+ }], disappear: [{
187
+ type: Output
188
+ }] } });
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQWdDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQXNDLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBVTFGLE1BQU0sT0FBTyxjQUFjO0lBbUV6QixZQUNVLG1CQUF3QyxFQUN4QyxZQUFpQyxFQUdqQyxr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RVksU0FBUztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvblNlcnZpY2UsIHV1aWQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JNb2RhbE9wdGlvbnMsIE5nYk1vZGFsUmVmIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jb25maXJtYXRpb24nO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTVVBQUkVTU19VTlNBVkVEX0NIQU5HRVNfV0FSTklORyB9IGZyb20gJy4uLy4uL3Rva2Vucy9zdXBwcmVzcy11bnNhdmVkLWNoYW5nZXMtd2FybmluZy50b2tlbic7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlzbWlzc2FibGVNb2RhbCwgTW9kYWxEaXNtaXNzTW9kZSwgTW9kYWxSZWZTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1yZWYuc2VydmljZSc7XHJcblxyXG5leHBvcnQgdHlwZSBNb2RhbFNpemUgPSAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtTdWJzY3JpcHRpb25TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERpc21pc3NhYmxlTW9kYWwge1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykgcmV0dXJuO1xyXG4gICAgdGhpcy50b2dnbGUkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgYnVzeSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9idXN5O1xyXG4gIH1cclxuICBzZXQgYnVzeSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgaWYgKHRoaXMuYWJwU3VibWl0ICYmIHRoaXMuYWJwU3VibWl0IGluc3RhbmNlb2YgQnV0dG9uQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuYWJwU3VibWl0LmxvYWRpbmcgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9idXN5ID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBvcHRpb25zOiBOZ2JNb2RhbE9wdGlvbnMgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgc3VwcHJlc3NVbnNhdmVkQ2hhbmdlc1dhcm5pbmcgPSB0aGlzLnN1cHByZXNzVW5zYXZlZENoYW5nZXNXYXJuaW5nVG9rZW47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudCcpIG1vZGFsQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ2FicEhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBhYnBIZWFkZXI/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAQ29udGVudENoaWxkKCdhYnBCb2R5JywgeyBzdGF0aWM6IGZhbHNlIH0pIGFicEJvZHk/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAQ29udGVudENoaWxkKCdhYnBGb290ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgYWJwRm9vdGVyPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChCdXR0b25Db21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogQnV0dG9uQ29tcG9uZW50IH0pXHJcbiAgYWJwU3VibWl0PzogQnV0dG9uQ29tcG9uZW50O1xyXG5cclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSByZWFkb25seSBhcHBlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSByZWFkb25seSBkaXNhcHBlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIF92aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIF9idXN5ID0gZmFsc2U7XHJcblxyXG4gIG1vZGFsUmVmITogTmdiTW9kYWxSZWY7XHJcblxyXG4gIGlzQ29uZmlybWF0aW9uT3BlbiA9IGZhbHNlO1xyXG5cclxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIG1vZGFsSWRlbnRpZmllciA9IGBtb2RhbC0ke3V1aWQoKX1gO1xyXG5cclxuICBwcml2YXRlIHRvZ2dsZSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICBnZXQgbW9kYWxXaW5kb3dSZWYoKSB7XHJcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbmdiLW1vZGFsLXdpbmRvdy4ke3RoaXMubW9kYWxJZGVudGlmaWVyfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRm9ybURpcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tb2RhbFdpbmRvd1JlZj8ucXVlcnlTZWxlY3RvcignLm5nLWRpcnR5JykpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBASW5qZWN0KFNVUFBSRVNTX1VOU0FWRURfQ0hBTkdFU19XQVJOSU5HKVxyXG4gICAgcHJpdmF0ZSBzdXBwcmVzc1Vuc2F2ZWRDaGFuZ2VzV2FybmluZ1Rva2VuOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBtb2RhbDogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIG1vZGFsUmVmU2VydmljZTogTW9kYWxSZWZTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0VG9nZ2xlU3RyZWFtKCk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RhbFJlZlNlcnZpY2UucmVnaXN0ZXIodGhpcyk7XHJcbiAgfVxyXG5cclxuICBkaXNtaXNzKG1vZGU6IE1vZGFsRGlzbWlzc01vZGUpIHtcclxuICAgIHN3aXRjaCAobW9kZSkge1xyXG4gICAgICBjYXNlICdoYXJkJzpcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc29mdCc6XHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0VG9nZ2xlU3RyZWFtKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKHRoaXMudG9nZ2xlJC5waXBlKGRlYm91bmNlVGltZSgwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksIHZhbHVlID0+XHJcbiAgICAgIHRoaXMudG9nZ2xlKHZhbHVlKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvZ2dsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xyXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG5cclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgdGhpcy5tb2RhbFJlZj8uZGlzbWlzcygpO1xyXG4gICAgICB0aGlzLmRpc2FwcGVhci5lbWl0KCk7XHJcbiAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmxpc3RlbigpLCAwKTtcclxuICAgIHRoaXMubW9kYWxSZWYgPSB0aGlzLm1vZGFsLm9wZW4odGhpcy5tb2RhbENvbnRlbnQsIHtcclxuICAgICAgc2l6ZTogJ21kJyxcclxuICAgICAgY2VudGVyZWQ6IGZhbHNlLFxyXG4gICAgICBrZXlib2FyZDogZmFsc2UsXHJcbiAgICAgIHNjcm9sbGFibGU6IHRydWUsXHJcbiAgICAgIGJlZm9yZURpc21pc3M6ICgpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICByZXR1cm4gIXRoaXMudmlzaWJsZTtcclxuICAgICAgfSxcclxuICAgICAgLi4udGhpcy5vcHRpb25zLFxyXG4gICAgICB3aW5kb3dDbGFzczogYCR7dGhpcy5vcHRpb25zLndpbmRvd0NsYXNzIHx8ICcnfSAke3RoaXMubW9kYWxJZGVudGlmaWVyfWAsXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFwcGVhci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kYWxSZWZTZXJ2aWNlLnVucmVnaXN0ZXIodGhpcyk7XHJcbiAgICB0aGlzLnRvZ2dsZShmYWxzZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgaWYgKHRoaXMuYnVzeSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmlzRm9ybURpcnR5ICYmICF0aGlzLnN1cHByZXNzVW5zYXZlZENoYW5nZXNXYXJuaW5nKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzQ29uZmlybWF0aW9uT3BlbikgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5pc0NvbmZpcm1hdGlvbk9wZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2VcclxuICAgICAgICAud2FybihcclxuICAgICAgICAgICdBYnBVaTo6QXJlWW91U3VyZVlvdVdhbnRUb0NhbmNlbEVkaXRpbmdXYXJuaW5nTWVzc2FnZScsXHJcbiAgICAgICAgICAnQWJwVWk6OkFyZVlvdVN1cmUnLFxyXG4gICAgICAgICAgeyBkaXNtaXNzaWJsZTogZmFsc2UgfSxcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzQ29uZmlybWF0aW9uT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaXN0ZW4oKSB7XHJcbiAgICBpZiAodGhpcy5tb2RhbFdpbmRvd1JlZikge1xyXG4gICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5tb2RhbFdpbmRvd1JlZiwgJ2tleXVwJylcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAgIGRlYm91bmNlVGltZSgxNTApLFxyXG4gICAgICAgICAgZmlsdGVyKChrZXk6IEtleWJvYXJkRXZlbnQpID0+IGtleSAmJiBrZXkua2V5ID09PSAnRXNjYXBlJyksXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBmcm9tRXZlbnQod2luZG93LCAnYmVmb3JldW5sb2FkJylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAvLyBUT0RPOiBjaGVjayB0aGlzXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzRm9ybURpcnR5IHx8IHRoaXMuc3VwcHJlc3NVbnNhdmVkQ2hhbmdlc1dhcm5pbmcpIHtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmluaXQuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG48bmctdGVtcGxhdGUgI21vZGFsQ29udGVudCBsZXQtbW9kYWw+XHJcbiAgPGRpdiAqbmdJZj1cImFicEhlYWRlclwiIGlkPVwiYWJwLW1vZGFsLWhlYWRlclwiIGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWJwSGVhZGVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICDigItcclxuICAgIDxidXR0b25cclxuICAgICAgaWQ9XCJhYnAtbW9kYWwtY2xvc2UtYnV0dG9uXCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNsYXNzPVwiYnRuLXNtIGJ0bi1jbG9zZVwiXHJcbiAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXHJcbiAgICAgIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIlxyXG4gICAgPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJhYnBCb2R5XCIgaWQ9XCJhYnAtbW9kYWwtYm9keVwiIGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFicEJvZHlcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiYWJwRm9vdGVyXCIgaWQ9XCJhYnAtbW9kYWwtZm9vdGVyXCIgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhYnBGb290ZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -0,0 +1,55 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@abp/ng.core";
5
+ export class ToastComponent {
6
+ constructor() {
7
+ this.remove = new EventEmitter();
8
+ }
9
+ get severityClass() {
10
+ if (!this.toast || !this.toast.severity)
11
+ return '';
12
+ return `abp-toast-${this.toast.severity}`;
13
+ }
14
+ get iconClass() {
15
+ switch (this.toast.severity) {
16
+ case 'success':
17
+ return 'fa-check-circle';
18
+ case 'info':
19
+ return 'fa-info-circle';
20
+ case 'warning':
21
+ return 'fa-exclamation-triangle';
22
+ case 'error':
23
+ return 'fa-times-circle';
24
+ default:
25
+ return 'fa-exclamation-circle';
26
+ }
27
+ }
28
+ ngOnInit() {
29
+ const { sticky, life } = this.toast.options || {};
30
+ if (sticky)
31
+ return;
32
+ const timeout = life || 5000;
33
+ setTimeout(() => {
34
+ this.close();
35
+ }, timeout);
36
+ }
37
+ close() {
38
+ this.remove.emit(this.toast.options?.id);
39
+ }
40
+ tap() {
41
+ if (this.toast.options?.tapToDismiss)
42
+ this.close();
43
+ }
44
+ }
45
+ ToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
+ ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ToastComponent, selector: "abp-toast", inputs: { toast: "toast" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"abp-toast\" [ngClass]=\"severityClass\" (click)=\"tap()\">\r\n <div class=\"abp-toast-icon\">\r\n <i class=\"fa icon\" [ngClass]=\"iconClass\"></i>\r\n </div>\r\n <div class=\"abp-toast-content\">\r\n <button class=\"abp-toast-close-button\" (click)=\"close()\" *ngIf=\"toast.options?.closable\">\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n <div class=\"abp-toast-title\">\r\n {{ toast.title | abpLocalization: toast.options?.titleLocalizationParams }}\r\n </div>\r\n <p\r\n class=\"abp-toast-message\"\r\n [innerHTML]=\"toast.message | abpLocalization: toast.options?.messageLocalizationParams\"\r\n ></p>\r\n </div>\r\n</div>\r\n", styles: [".abp-toast{display:grid;grid-template-columns:50px 1fr;grid-gap:10px;gap:10px;margin:5px 0;padding:10px;border-radius:0;width:350px;-webkit-user-select:none;user-select:none;z-index:9999;border:2px solid #f0f0f0;background-color:#f0f0f0;color:#000;box-shadow:0 0 10px -5px #0006;opacity:1}.abp-toast:hover{border:2px solid #e3e3e3;background-color:#e3e3e3;box-shadow:0 0 15px -5px #0006}.abp-toast.abp-toast-success{border:2px solid #51a351;background-color:#51a351;color:#fff;box-shadow:0 0 10px -5px #0006}.abp-toast.abp-toast-success:hover{border:2px solid #499249;background-color:#499249;box-shadow:0 0 15px -5px #0006}.abp-toast.abp-toast-info{border:2px solid #2f96b4;background-color:#2f96b4;color:#fff;box-shadow:0 0 10px -5px #0006}.abp-toast.abp-toast-info:hover{border:2px solid #2a85a0;background-color:#2a85a0;box-shadow:0 0 15px -5px #0006}.abp-toast.abp-toast-warning{border:2px solid #f89406;background-color:#f89406;color:#fff;box-shadow:0 0 10px -5px #0006}.abp-toast.abp-toast-warning:hover{border:2px solid #df8505;background-color:#df8505;box-shadow:0 0 15px -5px #0006}.abp-toast.abp-toast-error{border:2px solid #bd362f;background-color:#bd362f;color:#fff;box-shadow:0 0 10px -5px #0006}.abp-toast.abp-toast-error:hover{border:2px solid #a9302a;background-color:#a9302a;box-shadow:0 0 15px -5px #0006}.abp-toast .abp-toast-icon{display:flex;align-items:center;justify-content:center}.abp-toast .abp-toast-icon .icon{font-size:36px}.abp-toast .abp-toast-content{position:relative}.abp-toast .abp-toast-content .abp-toast-close-button{position:absolute;top:0;right:0;display:flex;align-items:center;justify-content:center;margin:0;padding:0 5px 0 0;width:25px;height:25px;border:none;border-radius:50%;background:transparent;color:inherit}.abp-toast .abp-toast-content .abp-toast-close-button:focus{outline:none}.abp-toast .abp-toast-content .abp-toast-title{margin:0;padding:0;font-size:1rem;font-weight:600}.abp-toast .abp-toast-content .abp-toast-message{margin:0;padding:0;max-width:240px}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "abpLocalization": i2.LocalizationPipe } });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ToastComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'abp-toast', template: "<div class=\"abp-toast\" [ngClass]=\"severityClass\" (click)=\"tap()\">\r\n <div class=\"abp-toast-icon\">\r\n <i class=\"fa icon\" [ngClass]=\"iconClass\"></i>\r\n </div>\r\n <div class=\"abp-toast-content\">\r\n <button class=\"abp-toast-close-button\" (click)=\"close()\" *ngIf=\"toast.options?.closable\">\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n <div class=\"abp-toast-title\">\r\n {{ toast.title | abpLocalization: toast.options?.titleLocalizationParams }}\r\n </div>\r\n <p\r\n class=\"abp-toast-message\"\r\n [innerHTML]=\"toast.message | abpLocalization: toast.options?.messageLocalizationParams\"\r\n ></p>\r\n </div>\r\n</div>\r\n", styles: [".abp-toast{display:grid;grid-template-columns:50px 1fr;grid-gap:10px;gap:10px;margin:5px 0;padding:10px;border-radius:0;width:350px;-webkit-user-select:none;user-select:none;z-index:9999;border:2px solid #f0f0f0;background-color:#f0f0f0;color:#000;box-shadow:0 0 10px -5px #0006;opacity:1}.abp-toast:hover{border:2px solid #e3e3e3;background-color:#e3e3e3;box-shadow:0 0 15px -5px #0006}.abp-toast.abp-toast-success{border:2px solid #51a351;background-color:#51a351;color:#fff;box-shadow:0 0 10px -5px #0006}.abp-toast.abp-toast-success:hover{border:2px solid #499249;background-color:#499249;box-shadow:0 0 15px -5px #0006}.abp-toast.abp-toast-info{border:2px solid #2f96b4;background-color:#2f96b4;color:#fff;box-shadow:0 0 10px -5px #0006}.abp-toast.abp-toast-info:hover{border:2px solid #2a85a0;background-color:#2a85a0;box-shadow:0 0 15px -5px #0006}.abp-toast.abp-toast-warning{border:2px solid #f89406;background-color:#f89406;color:#fff;box-shadow:0 0 10px -5px #0006}.abp-toast.abp-toast-warning:hover{border:2px solid #df8505;background-color:#df8505;box-shadow:0 0 15px -5px #0006}.abp-toast.abp-toast-error{border:2px solid #bd362f;background-color:#bd362f;color:#fff;box-shadow:0 0 10px -5px #0006}.abp-toast.abp-toast-error:hover{border:2px solid #a9302a;background-color:#a9302a;box-shadow:0 0 15px -5px #0006}.abp-toast .abp-toast-icon{display:flex;align-items:center;justify-content:center}.abp-toast .abp-toast-icon .icon{font-size:36px}.abp-toast .abp-toast-content{position:relative}.abp-toast .abp-toast-content .abp-toast-close-button{position:absolute;top:0;right:0;display:flex;align-items:center;justify-content:center;margin:0;padding:0 5px 0 0;width:25px;height:25px;border:none;border-radius:50%;background:transparent;color:inherit}.abp-toast .abp-toast-content .abp-toast-close-button:focus{outline:none}.abp-toast .abp-toast-content .abp-toast-title{margin:0;padding:0;font-size:1rem;font-weight:600}.abp-toast .abp-toast-content .abp-toast-message{margin:0;padding:0;max-width:240px}\n"] }]
50
+ }], propDecorators: { toast: [{
51
+ type: Input
52
+ }], remove: [{
53
+ type: Output
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPL0UsTUFBTSxPQUFPLGNBQWM7SUFMM0I7UUFTWSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQXVDL0M7SUFyQ0MsSUFBSSxhQUFhO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNuRCxPQUFPLGFBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUMzQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxpQkFBaUIsQ0FBQztZQUMzQixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxnQkFBZ0IsQ0FBQztZQUMxQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyx5QkFBeUIsQ0FBQztZQUNuQyxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxpQkFBaUIsQ0FBQztZQUMzQjtnQkFDRSxPQUFPLHVCQUF1QixDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUVsRCxJQUFJLE1BQU07WUFBRSxPQUFPO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUM7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEdBQUc7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFlBQVk7WUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckQsQ0FBQzs7MkdBMUNVLGNBQWM7K0ZBQWQsY0FBYyw0R0NQM0IsMnJCQWlCQTsyRkRWYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVc7OEJBTXJCLEtBQUs7c0JBREosS0FBSztnQkFHSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdG9hc3Rlcic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLXRvYXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RvYXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb2FzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICB0b2FzdCE6IFRvYXN0ZXIuVG9hc3Q7XHJcblxyXG4gIEBPdXRwdXQoKSByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgZ2V0IHNldmVyaXR5Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy50b2FzdCB8fCAhdGhpcy50b2FzdC5zZXZlcml0eSkgcmV0dXJuICcnO1xyXG4gICAgcmV0dXJuIGBhYnAtdG9hc3QtJHt0aGlzLnRvYXN0LnNldmVyaXR5fWA7XHJcbiAgfVxyXG5cclxuICBnZXQgaWNvbkNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHRoaXMudG9hc3Quc2V2ZXJpdHkpIHtcclxuICAgICAgY2FzZSAnc3VjY2Vzcyc6XHJcbiAgICAgICAgcmV0dXJuICdmYS1jaGVjay1jaXJjbGUnO1xyXG4gICAgICBjYXNlICdpbmZvJzpcclxuICAgICAgICByZXR1cm4gJ2ZhLWluZm8tY2lyY2xlJztcclxuICAgICAgY2FzZSAnd2FybmluZyc6XHJcbiAgICAgICAgcmV0dXJuICdmYS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XHJcbiAgICAgIGNhc2UgJ2Vycm9yJzpcclxuICAgICAgICByZXR1cm4gJ2ZhLXRpbWVzLWNpcmNsZSc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdmYS1leGNsYW1hdGlvbi1jaXJjbGUnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCB7IHN0aWNreSwgbGlmZSB9ID0gdGhpcy50b2FzdC5vcHRpb25zIHx8IHt9O1xyXG5cclxuICAgIGlmIChzdGlja3kpIHJldHVybjtcclxuICAgIGNvbnN0IHRpbWVvdXQgPSBsaWZlIHx8IDUwMDA7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfSwgdGltZW91dCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMucmVtb3ZlLmVtaXQodGhpcy50b2FzdC5vcHRpb25zPy5pZCk7XHJcbiAgfVxyXG5cclxuICB0YXAoKSB7XHJcbiAgICBpZiAodGhpcy50b2FzdC5vcHRpb25zPy50YXBUb0Rpc21pc3MpIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFicC10b2FzdFwiIFtuZ0NsYXNzXT1cInNldmVyaXR5Q2xhc3NcIiAoY2xpY2spPVwidGFwKClcIj5cclxuICA8ZGl2IGNsYXNzPVwiYWJwLXRvYXN0LWljb25cIj5cclxuICAgIDxpIGNsYXNzPVwiZmEgaWNvblwiIFtuZ0NsYXNzXT1cImljb25DbGFzc1wiPjwvaT5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYWJwLXRvYXN0LWNvbnRlbnRcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJhYnAtdG9hc3QtY2xvc2UtYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIiAqbmdJZj1cInRvYXN0Lm9wdGlvbnM/LmNsb3NhYmxlXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJhYnAtdG9hc3QtdGl0bGVcIj5cclxuICAgICAge3sgdG9hc3QudGl0bGUgfCBhYnBMb2NhbGl6YXRpb246IHRvYXN0Lm9wdGlvbnM/LnRpdGxlTG9jYWxpemF0aW9uUGFyYW1zIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxwXHJcbiAgICAgIGNsYXNzPVwiYWJwLXRvYXN0LW1lc3NhZ2VcIlxyXG4gICAgICBbaW5uZXJIVE1MXT1cInRvYXN0Lm1lc3NhZ2UgfCBhYnBMb2NhbGl6YXRpb246IHRvYXN0Lm9wdGlvbnM/Lm1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXNcIlxyXG4gICAgPjwvcD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { toastInOut } from '../../animations/toast.animations';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../toast/toast.component";
5
+ import * as i2 from "@angular/common";
6
+ export class ToastContainerComponent {
7
+ constructor() {
8
+ this.toasts = [];
9
+ this.right = '30px';
10
+ this.bottom = '30px';
11
+ }
12
+ ngOnInit() {
13
+ this.toasts$.subscribe(toasts => {
14
+ this.toasts = this.toastKey
15
+ ? toasts.filter(t => {
16
+ return t.options && t.options.containerKey !== this.toastKey;
17
+ })
18
+ : toasts;
19
+ });
20
+ }
21
+ trackByFunc(index, toast) {
22
+ if (!toast)
23
+ return null;
24
+ return toast.options?.id;
25
+ }
26
+ }
27
+ ToastContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
+ ToastContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: ToastContainerComponent, selector: "abp-toast-container", inputs: { top: "top", right: "right", bottom: "bottom", left: "left", toastKey: "toastKey" }, ngImport: i0, template: "<div\r\n class=\"abp-toast-container\"\r\n [style.top]=\"top || 'auto'\"\r\n [style.right]=\"right || 'auto'\"\r\n [style.bottom]=\"bottom || 'auto'\"\r\n [style.left]=\"left || 'auto'\"\r\n [style.display]=\"toasts.length ? 'flex' : 'none'\"\r\n [@toastInOut]=\"toasts.length\"\r\n>\r\n <abp-toast\r\n [toast]=\"toast\"\r\n *ngFor=\"let toast of toasts; trackBy: trackByFunc\"\r\n (remove)=\"remove($event)\"\r\n ></abp-toast>\r\n</div>\r\n", styles: [".abp-toast-container{position:fixed;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:350px;min-height:80px;z-index:1900}.abp-toast-container.new-on-top{flex-direction:column-reverse}\n"], components: [{ type: i1.ToastComponent, selector: "abp-toast", inputs: ["toast"], outputs: ["remove"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], animations: [toastInOut] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ToastContainerComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'abp-toast-container', animations: [toastInOut], template: "<div\r\n class=\"abp-toast-container\"\r\n [style.top]=\"top || 'auto'\"\r\n [style.right]=\"right || 'auto'\"\r\n [style.bottom]=\"bottom || 'auto'\"\r\n [style.left]=\"left || 'auto'\"\r\n [style.display]=\"toasts.length ? 'flex' : 'none'\"\r\n [@toastInOut]=\"toasts.length\"\r\n>\r\n <abp-toast\r\n [toast]=\"toast\"\r\n *ngFor=\"let toast of toasts; trackBy: trackByFunc\"\r\n (remove)=\"remove($event)\"\r\n ></abp-toast>\r\n</div>\r\n", styles: [".abp-toast-container{position:fixed;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:350px;min-height:80px;z-index:1900}.abp-toast-container.new-on-top{flex-direction:column-reverse}\n"] }]
32
+ }], propDecorators: { top: [{
33
+ type: Input
34
+ }], right: [{
35
+ type: Input
36
+ }], bottom: [{
37
+ type: Input
38
+ }], left: [{
39
+ type: Input
40
+ }], toastKey: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QtY29udGFpbmVyL3RvYXN0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3RvYXN0LWNvbnRhaW5lci90b2FzdC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBUy9ELE1BQU0sT0FBTyx1QkFBdUI7SUFOcEM7UUFXRSxXQUFNLEdBQUcsRUFBcUIsQ0FBQztRQU0vQixVQUFLLEdBQUcsTUFBTSxDQUFDO1FBR2YsV0FBTSxHQUFHLE1BQU0sQ0FBQztLQXNCakI7SUFkQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUTtnQkFDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2hCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMvRCxDQUFDLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhLEVBQUUsS0FBb0I7UUFDN0MsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQzNCLENBQUM7O29IQW5DVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix5SkNYcEMsNmNBZUEsOGRETmMsQ0FBQyxVQUFVLENBQUM7MkZBRWIsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQixDQUFDLFVBQVUsQ0FBQzs4QkFVeEIsR0FBRztzQkFERixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRvYXN0SW5PdXQgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL3RvYXN0LmFuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBUb2FzdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RvYXN0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtdG9hc3QtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90b2FzdC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbdG9hc3RJbk91dF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb2FzdENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdG9hc3RzJCE6IFJlcGxheVN1YmplY3Q8VG9hc3Rlci5Ub2FzdFtdPjtcclxuXHJcbiAgcmVtb3ZlITogKHRvYXN0SWQ6IG51bWJlcikgPT4gdm9pZDtcclxuXHJcbiAgdG9hc3RzID0gW10gYXMgVG9hc3Rlci5Ub2FzdFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRvcD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICByaWdodCA9ICczMHB4JztcclxuXHJcbiAgQElucHV0KClcclxuICBib3R0b20gPSAnMzBweCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbGVmdD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICB0b2FzdEtleT86IHN0cmluZztcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRvYXN0cyQuc3Vic2NyaWJlKHRvYXN0cyA9PiB7XHJcbiAgICAgIHRoaXMudG9hc3RzID0gdGhpcy50b2FzdEtleVxyXG4gICAgICAgID8gdG9hc3RzLmZpbHRlcih0ID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHQub3B0aW9ucyAmJiB0Lm9wdGlvbnMuY29udGFpbmVyS2V5ICE9PSB0aGlzLnRvYXN0S2V5O1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICA6IHRvYXN0cztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUZ1bmMoaW5kZXg6IG51bWJlciwgdG9hc3Q6IFRvYXN0ZXIuVG9hc3QpIHtcclxuICAgIGlmICghdG9hc3QpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHRvYXN0Lm9wdGlvbnM/LmlkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJhYnAtdG9hc3QtY29udGFpbmVyXCJcclxuICBbc3R5bGUudG9wXT1cInRvcCB8fCAnYXV0bydcIlxyXG4gIFtzdHlsZS5yaWdodF09XCJyaWdodCB8fCAnYXV0bydcIlxyXG4gIFtzdHlsZS5ib3R0b21dPVwiYm90dG9tIHx8ICdhdXRvJ1wiXHJcbiAgW3N0eWxlLmxlZnRdPVwibGVmdCB8fCAnYXV0bydcIlxyXG4gIFtzdHlsZS5kaXNwbGF5XT1cInRvYXN0cy5sZW5ndGggPyAnZmxleCcgOiAnbm9uZSdcIlxyXG4gIFtAdG9hc3RJbk91dF09XCJ0b2FzdHMubGVuZ3RoXCJcclxuPlxyXG4gIDxhYnAtdG9hc3RcclxuICAgIFt0b2FzdF09XCJ0b2FzdFwiXHJcbiAgICAqbmdGb3I9XCJsZXQgdG9hc3Qgb2YgdG9hc3RzOyB0cmFja0J5OiB0cmFja0J5RnVuY1wiXHJcbiAgICAocmVtb3ZlKT1cInJlbW92ZSgkZXZlbnQpXCJcclxuICA+PC9hYnAtdG9hc3Q+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -20,9 +20,9 @@ export class EllipsisDirective {
20
20
  this.cdRef.detectChanges();
21
21
  }
22
22
  }
23
- EllipsisDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EllipsisDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
24
- EllipsisDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: EllipsisDirective, selector: "[abpEllipsis]", inputs: { width: ["abpEllipsis", "width"], title: "title", enabled: ["abpEllipsisEnabled", "enabled"] }, host: { properties: { "title": "this.title", "class.abp-ellipsis-inline": "this.inlineClass", "class.abp-ellipsis": "this.class", "style.max-width": "this.maxWidth" } }, ngImport: i0 });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EllipsisDirective, decorators: [{
23
+ EllipsisDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EllipsisDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
24
+ EllipsisDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: EllipsisDirective, selector: "[abpEllipsis]", inputs: { width: ["abpEllipsis", "width"], title: "title", enabled: ["abpEllipsisEnabled", "enabled"] }, host: { properties: { "title": "this.title", "class.abp-ellipsis-inline": "this.inlineClass", "class.abp-ellipsis": "this.class", "style.max-width": "this.maxWidth" } }, ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EllipsisDirective, decorators: [{
26
26
  type: Directive,
27
27
  args: [{
28
28
  selector: '[abpEllipsis]',
@@ -50,14 +50,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
50
50
  }] } });
51
51
  export class EllipsisModule {
52
52
  }
53
- EllipsisModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EllipsisModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
54
- EllipsisModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EllipsisModule, declarations: [EllipsisDirective], exports: [EllipsisDirective] });
55
- EllipsisModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EllipsisModule });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EllipsisModule, decorators: [{
53
+ EllipsisModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EllipsisModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
54
+ EllipsisModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EllipsisModule, declarations: [EllipsisDirective], exports: [EllipsisDirective] });
55
+ EllipsisModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EllipsisModule });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EllipsisModule, decorators: [{
57
57
  type: NgModule,
58
58
  args: [{
59
59
  exports: [EllipsisDirective],
60
60
  declarations: [EllipsisDirective],
61
61
  }]
62
62
  }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvZGlyZWN0aXZlcy9lbGxpcHNpcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDOztBQUt2QixNQUFNLE9BQU8saUJBQWlCO0lBMEI1QixZQUFvQixLQUF3QixFQUFVLEtBQWlCO1FBQW5ELFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQWpCdkUsWUFBTyxHQUFHLElBQUksQ0FBQztJQWlCMkQsQ0FBQztJQWYzRSxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDeEUsQ0FBQztJQUlELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUE2QixDQUFDLFNBQVMsQ0FBQztRQUMvRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OytHQS9CVSxpQkFBaUI7bUdBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjtpSUFHQyxLQUFLO3NCQURKLEtBQUs7dUJBQUMsYUFBYTtnQkFLcEIsS0FBSztzQkFGSixXQUFXO3VCQUFDLE9BQU87O3NCQUNuQixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSzt1QkFBQyxvQkFBb0I7Z0JBSXZCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQywyQkFBMkI7Z0JBTXBDLEtBQUs7c0JBRFIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBTTdCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxpQkFBaUI7O0FBaUJoQyxNQUFNLE9BQU8sY0FBYzs7NEdBQWQsY0FBYzs2R0FBZCxjQUFjLGlCQXRDZCxpQkFBaUIsYUFBakIsaUJBQWlCOzZHQXNDakIsY0FBYzs0RkFBZCxjQUFjO2tCQUoxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgTmdNb2R1bGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thYnBFbGxpcHNpc10nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWxsaXBzaXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoJ2FicEVsbGlwc2lzJylcclxuICB3aWR0aD86IHN0cmluZztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCd0aXRsZScpXHJcbiAgQElucHV0KClcclxuICB0aXRsZT86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCdhYnBFbGxpcHNpc0VuYWJsZWQnKVxyXG4gIGVuYWJsZWQgPSB0cnVlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFicC1lbGxpcHNpcy1pbmxpbmUnKVxyXG4gIGdldCBpbmxpbmVDbGFzcygpIHtcclxuICAgIHJldHVybiB0aGlzLmVuYWJsZWQgJiYgdGhpcy53aWR0aDtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWJwLWVsbGlwc2lzJylcclxuICBnZXQgY2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmFibGVkICYmICF0aGlzLndpZHRoO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtd2lkdGgnKVxyXG4gIGdldCBtYXhXaWR0aCgpIHtcclxuICAgIHJldHVybiB0aGlzLmVuYWJsZWQgJiYgdGhpcy53aWR0aCA/IHRoaXMud2lkdGggfHwgJzE3MHB4JyA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnRpdGxlID0gdGhpcy50aXRsZSB8fCAodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW0VsbGlwc2lzRGlyZWN0aXZlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtFbGxpcHNpc0RpcmVjdGl2ZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbGxpcHNpc01vZHVsZSB7fVxyXG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvZGlyZWN0aXZlcy9lbGxpcHNpcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDOztBQUt2QixNQUFNLE9BQU8saUJBQWlCO0lBMEI1QixZQUFvQixLQUF3QixFQUFVLEtBQWlCO1FBQW5ELFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQWpCdkUsWUFBTyxHQUFHLElBQUksQ0FBQztJQWlCMkQsQ0FBQztJQWYzRSxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDeEUsQ0FBQztJQUlELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUE2QixDQUFDLFNBQVMsQ0FBQztRQUMvRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OzhHQS9CVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjtpSUFHQyxLQUFLO3NCQURKLEtBQUs7dUJBQUMsYUFBYTtnQkFLcEIsS0FBSztzQkFGSixXQUFXO3VCQUFDLE9BQU87O3NCQUNuQixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSzt1QkFBQyxvQkFBb0I7Z0JBSXZCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQywyQkFBMkI7Z0JBTXBDLEtBQUs7c0JBRFIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBTTdCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxpQkFBaUI7O0FBaUJoQyxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQXRDZCxpQkFBaUIsYUFBakIsaUJBQWlCOzRHQXNDakIsY0FBYzsyRkFBZCxjQUFjO2tCQUoxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgTmdNb2R1bGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thYnBFbGxpcHNpc10nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWxsaXBzaXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoJ2FicEVsbGlwc2lzJylcclxuICB3aWR0aD86IHN0cmluZztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCd0aXRsZScpXHJcbiAgQElucHV0KClcclxuICB0aXRsZT86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCdhYnBFbGxpcHNpc0VuYWJsZWQnKVxyXG4gIGVuYWJsZWQgPSB0cnVlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFicC1lbGxpcHNpcy1pbmxpbmUnKVxyXG4gIGdldCBpbmxpbmVDbGFzcygpIHtcclxuICAgIHJldHVybiB0aGlzLmVuYWJsZWQgJiYgdGhpcy53aWR0aDtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWJwLWVsbGlwc2lzJylcclxuICBnZXQgY2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmFibGVkICYmICF0aGlzLndpZHRoO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtd2lkdGgnKVxyXG4gIGdldCBtYXhXaWR0aCgpIHtcclxuICAgIHJldHVybiB0aGlzLmVuYWJsZWQgJiYgdGhpcy53aWR0aCA/IHRoaXMud2lkdGggfHwgJzE3MHB4JyA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnRpdGxlID0gdGhpcy50aXRsZSB8fCAodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW0VsbGlwc2lzRGlyZWN0aXZlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtFbGxpcHNpc0RpcmVjdGl2ZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbGxpcHNpc01vZHVsZSB7fVxyXG4iXX0=
@@ -0,0 +1,89 @@
1
+ import { ComponentFactoryResolver, Directive, ElementRef, HostBinding, Injector, Input, Renderer2, ViewContainerRef, } from '@angular/core';
2
+ import { timer } from 'rxjs';
3
+ import { take } from 'rxjs/operators';
4
+ import { LoadingComponent } from '../components/loading/loading.component';
5
+ import * as i0 from "@angular/core";
6
+ export class LoadingDirective {
7
+ constructor(elRef, vcRef, cdRes, injector, renderer) {
8
+ this.elRef = elRef;
9
+ this.vcRef = vcRef;
10
+ this.cdRes = cdRes;
11
+ this.injector = injector;
12
+ this.renderer = renderer;
13
+ this.position = 'relative';
14
+ this.delay = 0;
15
+ this.rootNode = null;
16
+ this.timerSubscription = null;
17
+ }
18
+ get loading() {
19
+ return this._loading;
20
+ }
21
+ set loading(newValue) {
22
+ setTimeout(() => {
23
+ if (!newValue && this.timerSubscription) {
24
+ this.timerSubscription.unsubscribe();
25
+ this.timerSubscription = null;
26
+ this._loading = newValue;
27
+ if (this.rootNode) {
28
+ this.renderer.removeChild(this.rootNode.parentElement, this.rootNode);
29
+ this.rootNode = null;
30
+ }
31
+ return;
32
+ }
33
+ this.timerSubscription = timer(this.delay)
34
+ .pipe(take(1))
35
+ .subscribe(() => {
36
+ if (!this.componentRef) {
37
+ this.componentRef = this.cdRes
38
+ .resolveComponentFactory(LoadingComponent)
39
+ .create(this.injector);
40
+ }
41
+ if (newValue && !this.rootNode) {
42
+ this.rootNode = this.componentRef.hostView.rootNodes[0];
43
+ this.targetElement?.appendChild(this.rootNode);
44
+ }
45
+ else if (this.rootNode) {
46
+ this.renderer.removeChild(this.rootNode.parentElement, this.rootNode);
47
+ this.rootNode = null;
48
+ }
49
+ this._loading = newValue;
50
+ this.timerSubscription = null;
51
+ });
52
+ }, 0);
53
+ }
54
+ ngOnInit() {
55
+ if (!this.targetElement) {
56
+ const { offsetHeight, offsetWidth } = this.elRef.nativeElement;
57
+ if (!offsetHeight && !offsetWidth && this.elRef.nativeElement.children.length) {
58
+ this.targetElement = this.elRef.nativeElement.children[0];
59
+ }
60
+ else {
61
+ this.targetElement = this.elRef.nativeElement;
62
+ }
63
+ }
64
+ }
65
+ ngOnDestroy() {
66
+ if (this.timerSubscription) {
67
+ this.timerSubscription.unsubscribe();
68
+ }
69
+ }
70
+ }
71
+ LoadingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LoadingDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
72
+ LoadingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: LoadingDirective, selector: "[abpLoading]", inputs: { loading: ["abpLoading", "loading"], targetElement: ["abpLoadingTargetElement", "targetElement"], delay: ["abpLoadingDelay", "delay"] }, host: { properties: { "style.position": "this.position" } }, ngImport: i0 });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: LoadingDirective, decorators: [{
74
+ type: Directive,
75
+ args: [{ selector: '[abpLoading]' }]
76
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.Renderer2 }]; }, propDecorators: { position: [{
77
+ type: HostBinding,
78
+ args: ['style.position']
79
+ }], loading: [{
80
+ type: Input,
81
+ args: ['abpLoading']
82
+ }], targetElement: [{
83
+ type: Input,
84
+ args: ['abpLoadingTargetElement']
85
+ }], delay: [{
86
+ type: Input,
87
+ args: ['abpLoadingDelay']
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9kaXJlY3RpdmVzL2xvYWRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFFeEIsU0FBUyxFQUNULFVBQVUsRUFFVixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFHM0UsTUFBTSxPQUFPLGdCQUFnQjtJQTBEM0IsWUFDVSxLQUE4QixFQUM5QixLQUF1QixFQUN2QixLQUErQixFQUMvQixRQUFrQixFQUNsQixRQUFtQjtRQUpuQixVQUFLLEdBQUwsS0FBSyxDQUF5QjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUN2QixVQUFLLEdBQUwsS0FBSyxDQUEwQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVc7UUEzRDdCLGFBQVEsR0FBRyxVQUFVLENBQUM7UUFnRHRCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFHVixhQUFRLEdBQTBCLElBQUksQ0FBQztRQUN2QyxzQkFBaUIsR0FBd0IsSUFBSSxDQUFDO0lBUTNDLENBQUM7SUExREosSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFpQjtRQUMzQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7Z0JBRXpCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN0RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztpQkFDdEI7Z0JBQ0QsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2lCQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUs7eUJBQzNCLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDO3lCQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUMxQjtnQkFFRCxJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbEYsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQTBCLENBQUMsQ0FBQztpQkFDbEU7cUJBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3RFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2lCQUN0QjtnQkFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFvQkQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDL0QsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUM3RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQWdCLENBQUM7YUFDMUU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQzthQUMvQztTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs2R0FqRlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUU7c05BS3JDLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBSXpCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxZQUFZO2dCQTJDbkIsYUFBYTtzQkFEWixLQUFLO3VCQUFDLHlCQUF5QjtnQkFJaEMsS0FBSztzQkFESixLQUFLO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBFbWJlZGRlZFZpZXdSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1thYnBMb2FkaW5nXScgfSlcclxuZXhwb3J0IGNsYXNzIExvYWRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfbG9hZGluZyE6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUucG9zaXRpb24nKVxyXG4gIHBvc2l0aW9uID0gJ3JlbGF0aXZlJztcclxuXHJcbiAgQElucHV0KCdhYnBMb2FkaW5nJylcclxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgc2V0IGxvYWRpbmcobmV3VmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoIW5ld1ZhbHVlICYmIHRoaXMudGltZXJTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLnRpbWVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy50aW1lclN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fbG9hZGluZyA9IG5ld1ZhbHVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5yb290Tm9kZSkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLnJvb3ROb2RlLnBhcmVudEVsZW1lbnQsIHRoaXMucm9vdE5vZGUpO1xyXG4gICAgICAgICAgdGhpcy5yb290Tm9kZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50aW1lclN1YnNjcmlwdGlvbiA9IHRpbWVyKHRoaXMuZGVsYXkpXHJcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNkUmVzXHJcbiAgICAgICAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KExvYWRpbmdDb21wb25lbnQpXHJcbiAgICAgICAgICAgICAgLmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAobmV3VmFsdWUgJiYgIXRoaXMucm9vdE5vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5yb290Tm9kZSA9ICh0aGlzLmNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdO1xyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEVsZW1lbnQ/LmFwcGVuZENoaWxkKHRoaXMucm9vdE5vZGUgYXMgSFRNTERpdkVsZW1lbnQpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJvb3ROb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5yb290Tm9kZS5wYXJlbnRFbGVtZW50LCB0aGlzLnJvb3ROb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5yb290Tm9kZSA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5fbG9hZGluZyA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgdGhpcy50aW1lclN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgnYWJwTG9hZGluZ1RhcmdldEVsZW1lbnQnKVxyXG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoJ2FicExvYWRpbmdEZWxheScpXHJcbiAgZGVsYXkgPSAwO1xyXG5cclxuICBjb21wb25lbnRSZWYhOiBDb21wb25lbnRSZWY8TG9hZGluZ0NvbXBvbmVudD47XHJcbiAgcm9vdE5vZGU6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgdGltZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSB2Y1JlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgY2RSZXM6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMudGFyZ2V0RWxlbWVudCkge1xyXG4gICAgICBjb25zdCB7IG9mZnNldEhlaWdodCwgb2Zmc2V0V2lkdGggfSA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYgKCFvZmZzZXRIZWlnaHQgJiYgIW9mZnNldFdpZHRoICYmIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnRhcmdldEVsZW1lbnQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50YXJnZXRFbGVtZW50ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLnRpbWVyU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMudGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -54,9 +54,9 @@ export class NgxDatatableDefaultDirective {
54
54
  this.subscription.unsubscribe();
55
55
  }
56
56
  }
57
- NgxDatatableDefaultDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NgxDatatableDefaultDirective, deps: [{ token: i1.DatatableComponent }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
58
- NgxDatatableDefaultDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: { class: "class" }, host: { properties: { "class": "this.classes" } }, exportAs: ["ngxDatatableDefault"], ngImport: i0 });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: NgxDatatableDefaultDirective, decorators: [{
57
+ NgxDatatableDefaultDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDatatableDefaultDirective, deps: [{ token: i1.DatatableComponent }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
58
+ NgxDatatableDefaultDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: { class: "class" }, host: { properties: { "class": "this.classes" } }, exportAs: ["ngxDatatableDefault"], ngImport: i0 });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NgxDatatableDefaultDirective, decorators: [{
60
60
  type: Directive,
61
61
  args: [{
62
62
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
72
72
  type: HostBinding,
73
73
  args: ['class']
74
74
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRhdGF0YWJsZS1kZWZhdWx0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL2RpcmVjdGl2ZXMvbmd4LWRhdGF0YWJsZS1kZWZhdWx0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFpQixTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU85QyxNQUFNLE9BQU8sNEJBQTRCO0lBWXZDLFlBQW9CLEtBQXlCLEVBQTRCLFFBQXNCO1FBQTNFLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBQTRCLGFBQVEsR0FBUixRQUFRLENBQWM7UUFYdkYsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxDLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFFZCxVQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFRbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFaRCxJQUNJLE9BQU87UUFDVCxPQUFPLGlCQUFpQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQVdPLGdCQUFnQixDQUFDLFFBQTJCO1FBQ2xELE1BQU0sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUVoRCxJQUFJLGVBQWUsQ0FBQyxZQUFZLEtBQUssZUFBZSxDQUFDLFlBQVksRUFBRTtZQUNqRSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDdkQsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3pDO1NBQ0Y7YUFBTTtZQUNMLFFBQVEsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsaUVBQWlFO1FBQ2pFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUU5QyxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBRXRCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7OzBIQXhEVSw0QkFBNEIsb0RBWWdCLFFBQVE7OEdBWnBELDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUx4QyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFLHFCQUFxQjtpQkFDaEM7OzBCQWFpRCxNQUFNOzJCQUFDLFFBQVE7NENBUHRELEtBQUs7c0JBQWIsS0FBSztnQkFHRixPQUFPO3NCQURWLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbHVtbk1vZGUsIERhdGF0YWJsZUNvbXBvbmVudCwgU2Nyb2xsZXJDb21wb25lbnQgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICduZ3gtZGF0YXRhYmxlW2RlZmF1bHRdJyxcclxuICBleHBvcnRBczogJ25neERhdGF0YWJsZURlZmF1bHQnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4RGF0YXRhYmxlRGVmYXVsdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIHByaXZhdGUgcmVzaXplRGlmZiA9IDA7XHJcblxyXG4gIEBJbnB1dCgpIGNsYXNzID0gJ21hdGVyaWFsIGJvcmRlcmVkJztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IGNsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgbmd4LWRhdGF0YWJsZSAke3RoaXMuY2xhc3N9YDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFibGU6IERhdGF0YWJsZUNvbXBvbmVudCwgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogTW9ja0RvY3VtZW50KSB7XHJcbiAgICB0aGlzLnRhYmxlLmNvbHVtbk1vZGUgPSBDb2x1bW5Nb2RlLmZvcmNlO1xyXG4gICAgdGhpcy50YWJsZS5mb290ZXJIZWlnaHQgPSA1MDtcclxuICAgIHRoaXMudGFibGUuaGVhZGVySGVpZ2h0ID0gNTA7XHJcbiAgICB0aGlzLnRhYmxlLnJvd0hlaWdodCA9ICdhdXRvJztcclxuICAgIHRoaXMudGFibGUuc2Nyb2xsYmFySCA9IHRydWU7XHJcbiAgICB0aGlzLnRhYmxlLnZpcnR1YWxpemF0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpeEhvcml6b250YWxHYXAoc2Nyb2xsZXI6IFNjcm9sbGVyQ29tcG9uZW50KSB7XHJcbiAgICBjb25zdCB7IGJvZHksIGRvY3VtZW50RWxlbWVudCB9ID0gdGhpcy5kb2N1bWVudDtcclxuXHJcbiAgICBpZiAoZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCAhPT0gZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkge1xyXG4gICAgICBpZiAodGhpcy5yZXNpemVEaWZmID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5yZXNpemVEaWZmID0gd2luZG93LmlubmVyV2lkdGggLSBib2R5Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIHNjcm9sbGVyLnNjcm9sbFdpZHRoIC09IHRoaXMucmVzaXplRGlmZjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2Nyb2xsZXIuc2Nyb2xsV2lkdGggKz0gdGhpcy5yZXNpemVEaWZmO1xyXG4gICAgICB0aGlzLnJlc2l6ZURpZmYgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaXhTdHlsZU9uV2luZG93UmVzaXplKCkge1xyXG4gICAgLy8gYXZvaWRlZCBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJykgaW4gZmF2b3Igb2YgcGVyZm9ybWFuY2VcclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBzY3JvbGxlciB9ID0gdGhpcy50YWJsZS5ib2R5Q29tcG9uZW50O1xyXG5cclxuICAgICAgICBpZiAoIXNjcm9sbGVyKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuZml4SG9yaXpvbnRhbEdhcChzY3JvbGxlcik7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5maXhTdHlsZU9uV2luZG93UmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBmaXg6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIwMzUxXHJcbmludGVyZmFjZSBNb2NrRG9jdW1lbnQge1xyXG4gIGJvZHk6IE1vY2tCb2R5O1xyXG4gIGRvY3VtZW50RWxlbWVudDogTW9ja0RvY3VtZW50RWxlbWVudDtcclxufVxyXG5cclxuaW50ZXJmYWNlIE1vY2tCb2R5IHtcclxuICBvZmZzZXRXaWR0aDogbnVtYmVyO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTW9ja0RvY3VtZW50RWxlbWVudCB7XHJcbiAgY2xpZW50SGVpZ2h0OiBudW1iZXI7XHJcbiAgc2Nyb2xsSGVpZ2h0OiBudW1iZXI7XHJcbn1cclxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRhdGF0YWJsZS1kZWZhdWx0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL2RpcmVjdGl2ZXMvbmd4LWRhdGF0YWJsZS1kZWZhdWx0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFpQixTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU85QyxNQUFNLE9BQU8sNEJBQTRCO0lBWXZDLFlBQW9CLEtBQXlCLEVBQTRCLFFBQXNCO1FBQTNFLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBQTRCLGFBQVEsR0FBUixRQUFRLENBQWM7UUFYdkYsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxDLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFFZCxVQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFRbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFaRCxJQUNJLE9BQU87UUFDVCxPQUFPLGlCQUFpQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQVdPLGdCQUFnQixDQUFDLFFBQTJCO1FBQ2xELE1BQU0sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUVoRCxJQUFJLGVBQWUsQ0FBQyxZQUFZLEtBQUssZUFBZSxDQUFDLFlBQVksRUFBRTtZQUNqRSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDdkQsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ3pDO1NBQ0Y7YUFBTTtZQUNMLFFBQVEsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsaUVBQWlFO1FBQ2pFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUU5QyxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBRXRCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7O3lIQXhEVSw0QkFBNEIsb0RBWWdCLFFBQVE7NkdBWnBELDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQUx4QyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFLHFCQUFxQjtpQkFDaEM7OzBCQWFpRCxNQUFNOzJCQUFDLFFBQVE7NENBUHRELEtBQUs7c0JBQWIsS0FBSztnQkFHRixPQUFPO3NCQURWLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbHVtbk1vZGUsIERhdGF0YWJsZUNvbXBvbmVudCwgU2Nyb2xsZXJDb21wb25lbnQgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICduZ3gtZGF0YXRhYmxlW2RlZmF1bHRdJyxcclxuICBleHBvcnRBczogJ25neERhdGF0YWJsZURlZmF1bHQnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4RGF0YXRhYmxlRGVmYXVsdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIHByaXZhdGUgcmVzaXplRGlmZiA9IDA7XHJcblxyXG4gIEBJbnB1dCgpIGNsYXNzID0gJ21hdGVyaWFsIGJvcmRlcmVkJztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IGNsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgbmd4LWRhdGF0YWJsZSAke3RoaXMuY2xhc3N9YDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFibGU6IERhdGF0YWJsZUNvbXBvbmVudCwgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogTW9ja0RvY3VtZW50KSB7XHJcbiAgICB0aGlzLnRhYmxlLmNvbHVtbk1vZGUgPSBDb2x1bW5Nb2RlLmZvcmNlO1xyXG4gICAgdGhpcy50YWJsZS5mb290ZXJIZWlnaHQgPSA1MDtcclxuICAgIHRoaXMudGFibGUuaGVhZGVySGVpZ2h0ID0gNTA7XHJcbiAgICB0aGlzLnRhYmxlLnJvd0hlaWdodCA9ICdhdXRvJztcclxuICAgIHRoaXMudGFibGUuc2Nyb2xsYmFySCA9IHRydWU7XHJcbiAgICB0aGlzLnRhYmxlLnZpcnR1YWxpemF0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpeEhvcml6b250YWxHYXAoc2Nyb2xsZXI6IFNjcm9sbGVyQ29tcG9uZW50KSB7XHJcbiAgICBjb25zdCB7IGJvZHksIGRvY3VtZW50RWxlbWVudCB9ID0gdGhpcy5kb2N1bWVudDtcclxuXHJcbiAgICBpZiAoZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCAhPT0gZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkge1xyXG4gICAgICBpZiAodGhpcy5yZXNpemVEaWZmID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5yZXNpemVEaWZmID0gd2luZG93LmlubmVyV2lkdGggLSBib2R5Lm9mZnNldFdpZHRoO1xyXG4gICAgICAgIHNjcm9sbGVyLnNjcm9sbFdpZHRoIC09IHRoaXMucmVzaXplRGlmZjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2Nyb2xsZXIuc2Nyb2xsV2lkdGggKz0gdGhpcy5yZXNpemVEaWZmO1xyXG4gICAgICB0aGlzLnJlc2l6ZURpZmYgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaXhTdHlsZU9uV2luZG93UmVzaXplKCkge1xyXG4gICAgLy8gYXZvaWRlZCBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJykgaW4gZmF2b3Igb2YgcGVyZm9ybWFuY2VcclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBzY3JvbGxlciB9ID0gdGhpcy50YWJsZS5ib2R5Q29tcG9uZW50O1xyXG5cclxuICAgICAgICBpZiAoIXNjcm9sbGVyKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuZml4SG9yaXpvbnRhbEdhcChzY3JvbGxlcik7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5maXhTdHlsZU9uV2luZG93UmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBmaXg6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIwMzUxXHJcbmludGVyZmFjZSBNb2NrRG9jdW1lbnQge1xyXG4gIGJvZHk6IE1vY2tCb2R5O1xyXG4gIGRvY3VtZW50RWxlbWVudDogTW9ja0RvY3VtZW50RWxlbWVudDtcclxufVxyXG5cclxuaW50ZXJmYWNlIE1vY2tCb2R5IHtcclxuICBvZmZzZXRXaWR0aDogbnVtYmVyO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTW9ja0RvY3VtZW50RWxlbWVudCB7XHJcbiAgY2xpZW50SGVpZ2h0OiBudW1iZXI7XHJcbiAgc2Nyb2xsSGVpZ2h0OiBudW1iZXI7XHJcbn1cclxuIl19