@abp/ng.theme.shared 5.0.0-beta.1 → 5.0.0-beta.3-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 (140) hide show
  1. package/README.md +3 -3
  2. package/bundles/abp-ng.theme.shared-extensions.umd.js +6 -6
  3. package/bundles/abp-ng.theme.shared-extensions.umd.js.map +1 -1
  4. package/bundles/abp-ng.theme.shared-testing.umd.js.map +1 -1
  5. package/bundles/abp-ng.theme.shared.umd.js +49 -115
  6. package/bundles/abp-ng.theme.shared.umd.js.map +1 -1
  7. package/esm2015/extensions/lib/adapters/date-time.adapter.js.map +1 -1
  8. package/esm2015/extensions/lib/adapters/date.adapter.js.map +1 -1
  9. package/esm2015/extensions/lib/adapters/time.adapter.js.map +1 -1
  10. package/esm2015/extensions/lib/components/abstract-actions/abstract-actions.component.js.map +1 -1
  11. package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js +37 -37
  12. package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js.map +1 -1
  13. package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js +1 -1
  14. package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js.map +1 -1
  15. package/esm2015/extensions/lib/components/extensible-form/extensible-form.component.js +1 -1
  16. package/esm2015/extensions/lib/components/extensible-form/extensible-form.component.js.map +1 -1
  17. package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js +1 -1
  18. package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js.map +1 -1
  19. package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js +1 -1
  20. package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js.map +1 -1
  21. package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js +1 -1
  22. package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js.map +1 -1
  23. package/esm2015/extensions/lib/constants/extra-properties.js.map +1 -1
  24. package/esm2015/extensions/lib/directives/disabled.directive.js.map +1 -1
  25. package/esm2015/extensions/lib/directives/prop-data.directive.js.map +1 -1
  26. package/esm2015/extensions/lib/enums/props.enum.js.map +1 -1
  27. package/esm2015/extensions/lib/models/actions.js.map +1 -1
  28. package/esm2015/extensions/lib/models/entity-actions.js.map +1 -1
  29. package/esm2015/extensions/lib/models/entity-props.js.map +1 -1
  30. package/esm2015/extensions/lib/models/form-props.js.map +1 -1
  31. package/esm2015/extensions/lib/models/internal/object-extensions.js.map +1 -1
  32. package/esm2015/extensions/lib/models/object-extensions.js.map +1 -1
  33. package/esm2015/extensions/lib/models/props.js.map +1 -1
  34. package/esm2015/extensions/lib/models/toolbar-actions.js.map +1 -1
  35. package/esm2015/extensions/lib/services/extensions.service.js.map +1 -1
  36. package/esm2015/extensions/lib/tokens/extensions.token.js.map +1 -1
  37. package/esm2015/extensions/lib/ui-extensions.module.js.map +1 -1
  38. package/esm2015/extensions/lib/utils/actions.util.js.map +1 -1
  39. package/esm2015/extensions/lib/utils/enum.util.js.map +1 -1
  40. package/esm2015/extensions/lib/utils/factory.util.js.map +1 -1
  41. package/esm2015/extensions/lib/utils/form-props.util.js.map +1 -1
  42. package/esm2015/extensions/lib/utils/localization.util.js.map +1 -1
  43. package/esm2015/extensions/lib/utils/props.util.js.map +1 -1
  44. package/esm2015/extensions/lib/utils/state.util.js.map +1 -1
  45. package/esm2015/extensions/lib/utils/typeahead.util.js.map +1 -1
  46. package/esm2015/extensions/lib/utils/validation.util.js.map +1 -1
  47. package/esm2015/extensions/public-api.js.map +1 -1
  48. package/esm2015/lib/animations/bounce.animations.js.map +1 -1
  49. package/esm2015/lib/animations/collapse.animations.js.map +1 -1
  50. package/esm2015/lib/animations/fade.animations.js.map +1 -1
  51. package/esm2015/lib/animations/index.js.map +1 -1
  52. package/esm2015/lib/animations/modal.animations.js.map +1 -1
  53. package/esm2015/lib/animations/slide.animations.js.map +1 -1
  54. package/esm2015/lib/animations/toast.animations.js.map +1 -1
  55. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +1 -1
  56. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js.map +1 -1
  57. package/esm2015/lib/components/breadcrumb-items/breadcrumb-items.component.js +1 -1
  58. package/esm2015/lib/components/breadcrumb-items/breadcrumb-items.component.js.map +1 -1
  59. package/esm2015/lib/components/button/button.component.js +26 -26
  60. package/esm2015/lib/components/button/button.component.js.map +1 -1
  61. package/esm2015/lib/components/confirmation/confirmation.component.js +1 -1
  62. package/esm2015/lib/components/confirmation/confirmation.component.js.map +1 -1
  63. package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js +1 -1
  64. package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js.map +1 -1
  65. package/esm2015/lib/components/loader-bar/loader-bar.component.js +24 -24
  66. package/esm2015/lib/components/loader-bar/loader-bar.component.js.map +1 -1
  67. package/esm2015/lib/components/loading/loading.component.js +29 -29
  68. package/esm2015/lib/components/loading/loading.component.js.map +1 -1
  69. package/esm2015/lib/components/modal/modal-close.directive.js.map +1 -1
  70. package/esm2015/lib/components/modal/modal-ref.service.js.map +1 -1
  71. package/esm2015/lib/components/modal/modal.component.js +1 -1
  72. package/esm2015/lib/components/modal/modal.component.js.map +1 -1
  73. package/esm2015/lib/components/toast/toast.component.js +1 -1
  74. package/esm2015/lib/components/toast/toast.component.js.map +1 -1
  75. package/esm2015/lib/components/toast-container/toast-container.component.js +1 -1
  76. package/esm2015/lib/components/toast-container/toast-container.component.js.map +1 -1
  77. package/esm2015/lib/constants/styles.js +180 -179
  78. package/esm2015/lib/constants/styles.js.map +1 -1
  79. package/esm2015/lib/constants/validation.js.map +1 -1
  80. package/esm2015/lib/directives/ellipsis.directive.js.map +1 -1
  81. package/esm2015/lib/directives/index.js.map +1 -1
  82. package/esm2015/lib/directives/loading.directive.js.map +1 -1
  83. package/esm2015/lib/directives/ngx-datatable-default.directive.js.map +1 -1
  84. package/esm2015/lib/directives/ngx-datatable-list.directive.js.map +1 -1
  85. package/esm2015/lib/enums/index.js.map +1 -1
  86. package/esm2015/lib/enums/route-names.js.map +1 -1
  87. package/esm2015/lib/handlers/document-dir.handler.js +33 -0
  88. package/esm2015/lib/handlers/document-dir.handler.js.map +1 -0
  89. package/esm2015/lib/handlers/error.handler.js.map +1 -1
  90. package/esm2015/lib/handlers/index.js +1 -1
  91. package/esm2015/lib/handlers/index.js.map +1 -1
  92. package/esm2015/lib/models/common.js.map +1 -1
  93. package/esm2015/lib/models/confirmation.js.map +1 -1
  94. package/esm2015/lib/models/index.js.map +1 -1
  95. package/esm2015/lib/models/nav-item.js.map +1 -1
  96. package/esm2015/lib/models/statistics.js.map +1 -1
  97. package/esm2015/lib/models/toaster.js.map +1 -1
  98. package/esm2015/lib/providers/index.js.map +1 -1
  99. package/esm2015/lib/providers/ng-bootstrap-config.provider.js.map +1 -1
  100. package/esm2015/lib/providers/route.provider.js.map +1 -1
  101. package/esm2015/lib/services/confirmation.service.js.map +1 -1
  102. package/esm2015/lib/services/index.js.map +1 -1
  103. package/esm2015/lib/services/nav-items.service.js.map +1 -1
  104. package/esm2015/lib/services/page-alert.service.js.map +1 -1
  105. package/esm2015/lib/services/toaster.service.js.map +1 -1
  106. package/esm2015/lib/theme-shared.module.js +10 -9
  107. package/esm2015/lib/theme-shared.module.js.map +1 -1
  108. package/esm2015/lib/tokens/append-content.token.js.map +1 -1
  109. package/esm2015/lib/tokens/http-error.token.js.map +1 -1
  110. package/esm2015/lib/tokens/index.js +0 -1
  111. package/esm2015/lib/tokens/index.js.map +1 -1
  112. package/esm2015/lib/tokens/ngx-datatable-messages.token.js.map +1 -1
  113. package/esm2015/lib/tokens/suppress-unsaved-changes-warning.token.js.map +1 -1
  114. package/esm2015/lib/utils/date-parser-formatter.js.map +1 -1
  115. package/esm2015/lib/utils/index.js.map +1 -1
  116. package/esm2015/lib/utils/validation-utils.js.map +1 -1
  117. package/esm2015/public-api.js +0 -1
  118. package/esm2015/public-api.js.map +1 -1
  119. package/esm2015/testing/lib/models/config.js.map +1 -1
  120. package/esm2015/testing/lib/models/index.js.map +1 -1
  121. package/esm2015/testing/lib/theme-shared-testing.module.js.map +1 -1
  122. package/esm2015/testing/public-api.js.map +1 -1
  123. package/fesm2015/abp-ng.theme.shared-extensions.js +42 -42
  124. package/fesm2015/abp-ng.theme.shared-extensions.js.map +1 -1
  125. package/fesm2015/abp-ng.theme.shared-testing.js.map +1 -1
  126. package/fesm2015/abp-ng.theme.shared.js +307 -362
  127. package/fesm2015/abp-ng.theme.shared.js.map +1 -1
  128. package/lib/constants/styles.d.ts +1 -2
  129. package/lib/handlers/document-dir.handler.d.ts +13 -0
  130. package/lib/handlers/index.d.ts +1 -1
  131. package/lib/tokens/index.d.ts +0 -1
  132. package/package.json +4 -4
  133. package/public-api.d.ts +0 -1
  134. package/esm2015/lib/handlers/lazy-style.handler.js +0 -89
  135. package/esm2015/lib/handlers/lazy-style.handler.js.map +0 -1
  136. package/esm2015/lib/tokens/lazy-styles.token.js +0 -3
  137. package/esm2015/lib/tokens/lazy-styles.token.js.map +0 -1
  138. package/lib/handlers/lazy-style.handler.d.ts +0 -23
  139. package/lib/tokens/lazy-styles.token.d.ts +0 -2
  140. package/styles/bootstrap-rtl.min.css +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"http-error.token.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/tokens/http-error.token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,UAAU,sBAAsB,CAAC,SAAS,EAAqB;IACnE,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE;QAC5F,MAAM,CAAC,WAAW,CAAC,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;KAC1D;IAED,OAAO,gBACL,qBAAqB,EAAE,EAAE,EACzB,WAAW,EAAE,EAAE,IACZ,MAAM,CACS,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAkB,mBAAmB,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAmB,oBAAoB,CAAC,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { HttpErrorConfig, HttpErrorHandler } from '../models/common';\n\nexport function httpErrorConfigFactory(config = {} as HttpErrorConfig) {\n if (config.errorScreen && config.errorScreen.component && !config.errorScreen.forWhichErrors) {\n config.errorScreen.forWhichErrors = [401, 403, 404, 500];\n }\n\n return {\n skipHandledErrorCodes: [],\n errorScreen: {},\n ...config,\n } as HttpErrorConfig;\n}\n\nexport const HTTP_ERROR_CONFIG = new InjectionToken<HttpErrorConfig>('HTTP_ERROR_CONFIG');\n\nexport const HTTP_ERROR_HANDLER = new InjectionToken<HttpErrorHandler>('HTTP_ERROR_HANDLER');\n"]}
1
+ {"version":3,"file":"http-error.token.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/tokens/http-error.token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,UAAU,sBAAsB,CAAC,SAAS,EAAqB;IACnE,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE;QAC5F,MAAM,CAAC,WAAW,CAAC,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;KAC1D;IAED,OAAO,gBACL,qBAAqB,EAAE,EAAE,EACzB,WAAW,EAAE,EAAE,IACZ,MAAM,CACS,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAkB,mBAAmB,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAmB,oBAAoB,CAAC,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorConfig, HttpErrorHandler } from '../models/common';\r\n\r\nexport function httpErrorConfigFactory(config = {} as HttpErrorConfig) {\r\n if (config.errorScreen && config.errorScreen.component && !config.errorScreen.forWhichErrors) {\r\n config.errorScreen.forWhichErrors = [401, 403, 404, 500];\r\n }\r\n\r\n return {\r\n skipHandledErrorCodes: [],\r\n errorScreen: {},\r\n ...config,\r\n } as HttpErrorConfig;\r\n}\r\n\r\nexport const HTTP_ERROR_CONFIG = new InjectionToken<HttpErrorConfig>('HTTP_ERROR_CONFIG');\r\n\r\nexport const HTTP_ERROR_HANDLER = new InjectionToken<HttpErrorHandler>('HTTP_ERROR_HANDLER');\r\n"]}
@@ -1,6 +1,5 @@
1
1
  export * from './append-content.token';
2
2
  export * from './http-error.token';
3
- export * from './lazy-styles.token';
4
3
  export * from './ngx-datatable-messages.token';
5
4
  export * from './suppress-unsaved-changes-warning.token';
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/tokens/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC","sourcesContent":["export * from './append-content.token';\nexport * from './http-error.token';\nexport * from './lazy-styles.token';\nexport * from './ngx-datatable-messages.token';\nexport * from './suppress-unsaved-changes-warning.token';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/tokens/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC","sourcesContent":["export * from './append-content.token';\r\nexport * from './http-error.token';\r\nexport * from './ngx-datatable-messages.token';\r\nexport * from './suppress-unsaved-changes-warning.token';\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-datatable-messages.token.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/tokens/ngx-datatable-messages.token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ/C,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,YAAY,EAAE,mCAAmC;IACjD,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,cAAc,CACtD,wBAAwB,CACzB,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface NgxDatatableMessages {\n emptyMessage: string;\n totalMessage: string;\n selectedMessage: string;\n}\n\nexport const defaultNgxDatatableMessages = {\n emptyMessage: 'AbpUi::NoDataAvailableInDatatable',\n totalMessage: 'AbpUi::Total',\n selectedMessage: 'AbpUi::Selected',\n};\n\nexport const NGX_DATATABLE_MESSAGES = new InjectionToken<Partial<NgxDatatableMessages>>(\n 'NGX_DATATABLE_MESSAGES',\n);\n"]}
1
+ {"version":3,"file":"ngx-datatable-messages.token.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/tokens/ngx-datatable-messages.token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ/C,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,YAAY,EAAE,mCAAmC;IACjD,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,cAAc,CACtD,wBAAwB,CACzB,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport interface NgxDatatableMessages {\r\n emptyMessage: string;\r\n totalMessage: string;\r\n selectedMessage: string;\r\n}\r\n\r\nexport const defaultNgxDatatableMessages = {\r\n emptyMessage: 'AbpUi::NoDataAvailableInDatatable',\r\n totalMessage: 'AbpUi::Total',\r\n selectedMessage: 'AbpUi::Selected',\r\n};\r\n\r\nexport const NGX_DATATABLE_MESSAGES = new InjectionToken<Partial<NgxDatatableMessages>>(\r\n 'NGX_DATATABLE_MESSAGES',\r\n);\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"suppress-unsaved-changes-warning.token.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/tokens/suppress-unsaved-changes-warning.token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,cAAc,CAChE,kCAAkC,CACnC,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const SUPPRESS_UNSAVED_CHANGES_WARNING = new InjectionToken<boolean>(\n 'SUPPRESS_UNSAVED_CHANGES_WARNING',\n);\n"]}
1
+ {"version":3,"file":"suppress-unsaved-changes-warning.token.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/tokens/suppress-unsaved-changes-warning.token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,cAAc,CAChE,kCAAkC,CACnC,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const SUPPRESS_UNSAVED_CHANGES_WARNING = new InjectionToken<boolean>(\r\n 'SUPPRESS_UNSAVED_CHANGES_WARNING',\r\n);\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"date-parser-formatter.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/utils/date-parser-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAiB,MAAM,4BAA4B,CAAC;;;AAEnF,SAAS,QAAQ,CAAC,KAAU;IAC1B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,SAAS,CAAC,KAAU;IAC3B,OAAO,QAAQ,CAAC,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAGD,MAAM,OAAO,mBAAoB,SAAQ,sBAAsB;IAC7D,YAAoB,WAA+B,EAA6B,MAAc;QAC5F,KAAK,EAAE,CAAC;QADU,gBAAW,GAAX,WAAW,CAAoB;QAA6B,WAAM,GAAN,MAAM,CAAQ;IAE9F,CAAC;IAED,KAAK,CAAC,KAAa;QACjB,IAAI,KAAK,EAAE;YACT,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpD,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;aAClE;iBAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACrF,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;aACrF;iBAAM,IACL,SAAS,CAAC,MAAM,KAAK,CAAC;gBACtB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACtB;gBACA,OAAO;oBACL,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC7B,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC9B,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC7B,CAAC;aACH;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAmB;;QACxB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,MAAM,YAAY,GAChB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE1C,MAAM,UAAU,GACd,CAAA,MAAA,MAAA,YAAY,CAAC,cAAc,0CAAE,cAAc,0CAAE,gBAAgB,KAAI,YAAY,CAAC;QAEhF,OAAO,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5F,CAAC;;gHAtCU,mBAAmB,oDAC+B,SAAS;oHAD3D,mBAAmB;2FAAnB,mBAAmB;kBAD/B,UAAU;;0BAE6C,MAAM;2BAAC,SAAS","sourcesContent":["import { ApplicationLocalizationConfigurationDto, ConfigStateService } from '@abp/ng.core';\nimport { formatDate } from '@angular/common';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\n\nfunction isNumber(value: any): boolean {\n return !isNaN(toInteger(value));\n}\n\nfunction toInteger(value: any): number {\n return parseInt(`${value}`, 10);\n}\n\n@Injectable()\nexport class DateParserFormatter extends NgbDateParserFormatter {\n constructor(private configState: ConfigStateService, @Inject(LOCALE_ID) private locale: string) {\n super();\n }\n\n parse(value: string): NgbDateStruct {\n if (value) {\n const dateParts = value.trim().split('-');\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\n return { year: toInteger(dateParts[0]), month: null, day: null };\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: null };\n } else if (\n dateParts.length === 3 &&\n isNumber(dateParts[0]) &&\n isNumber(dateParts[1]) &&\n isNumber(dateParts[2])\n ) {\n return {\n year: toInteger(dateParts[0]),\n month: toInteger(dateParts[1]),\n day: toInteger(dateParts[2]),\n };\n }\n }\n return null;\n }\n\n format(date: NgbDateStruct): string {\n if (!date) return '';\n\n const localization: ApplicationLocalizationConfigurationDto =\n this.configState.getOne('localization');\n\n const dateFormat =\n localization.currentCulture?.dateTimeFormat?.shortDatePattern || 'yyyy-MM-dd';\n\n return formatDate(new Date(date.year, date.month - 1, date.day), dateFormat, this.locale);\n }\n}\n"]}
1
+ {"version":3,"file":"date-parser-formatter.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/utils/date-parser-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAiB,MAAM,4BAA4B,CAAC;;;AAEnF,SAAS,QAAQ,CAAC,KAAU;IAC1B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,SAAS,CAAC,KAAU;IAC3B,OAAO,QAAQ,CAAC,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAGD,MAAM,OAAO,mBAAoB,SAAQ,sBAAsB;IAC7D,YAAoB,WAA+B,EAA6B,MAAc;QAC5F,KAAK,EAAE,CAAC;QADU,gBAAW,GAAX,WAAW,CAAoB;QAA6B,WAAM,GAAN,MAAM,CAAQ;IAE9F,CAAC;IAED,KAAK,CAAC,KAAa;QACjB,IAAI,KAAK,EAAE;YACT,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpD,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;aAClE;iBAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;gBACrF,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;aACrF;iBAAM,IACL,SAAS,CAAC,MAAM,KAAK,CAAC;gBACtB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACtB;gBACA,OAAO;oBACL,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC7B,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC9B,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC7B,CAAC;aACH;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAmB;;QACxB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,MAAM,YAAY,GAChB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE1C,MAAM,UAAU,GACd,CAAA,MAAA,MAAA,YAAY,CAAC,cAAc,0CAAE,cAAc,0CAAE,gBAAgB,KAAI,YAAY,CAAC;QAEhF,OAAO,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5F,CAAC;;gHAtCU,mBAAmB,oDAC+B,SAAS;oHAD3D,mBAAmB;2FAAnB,mBAAmB;kBAD/B,UAAU;;0BAE6C,MAAM;2BAAC,SAAS","sourcesContent":["import { ApplicationLocalizationConfigurationDto, ConfigStateService } from '@abp/ng.core';\r\nimport { formatDate } from '@angular/common';\r\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\r\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nfunction isNumber(value: any): boolean {\r\n return !isNaN(toInteger(value));\r\n}\r\n\r\nfunction toInteger(value: any): number {\r\n return parseInt(`${value}`, 10);\r\n}\r\n\r\n@Injectable()\r\nexport class DateParserFormatter extends NgbDateParserFormatter {\r\n constructor(private configState: ConfigStateService, @Inject(LOCALE_ID) private locale: string) {\r\n super();\r\n }\r\n\r\n parse(value: string): NgbDateStruct {\r\n if (value) {\r\n const dateParts = value.trim().split('-');\r\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\r\n return { year: toInteger(dateParts[0]), month: null, day: null };\r\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\r\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: null };\r\n } else if (\r\n dateParts.length === 3 &&\r\n isNumber(dateParts[0]) &&\r\n isNumber(dateParts[1]) &&\r\n isNumber(dateParts[2])\r\n ) {\r\n return {\r\n year: toInteger(dateParts[0]),\r\n month: toInteger(dateParts[1]),\r\n day: toInteger(dateParts[2]),\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct): string {\r\n if (!date) return '';\r\n\r\n const localization: ApplicationLocalizationConfigurationDto =\r\n this.configState.getOne('localization');\r\n\r\n const dateFormat =\r\n localization.currentCulture?.dateTimeFormat?.shortDatePattern || 'yyyy-MM-dd';\r\n\r\n return formatDate(new Date(date.year, date.month - 1, date.day), dateFormat, this.locale);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './date-parser-formatter';\nexport * from './validation-utils';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './date-parser-formatter';\r\nexport * from './validation-utils';\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"validation-utils.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/utils/validation-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAe,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAiB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;AAE5C,MAAM,UAAU,qBAAqB,CAAC,QAAkB;IACtD,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,gBAAgB,GAAG,EAAmB,CAAC;IAC7C,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,MAAM,EAAE;QACtC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACjC;IAED,IAAI,OAAO,CAAC,kBAAkB,CAAC,KAAK,MAAM,EAAE;QAC1C,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;IAED,IAAI,OAAO,CAAC,kBAAkB,CAAC,KAAK,MAAM,EAAE;QAC1C,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClC;IAED,IAAI,OAAO,CAAC,wBAAwB,CAAC,KAAK,MAAM,EAAE;QAChD,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE;QAChD,cAAc,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;KAC7C;IAED,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,SAAS,CAAC,QAAkB;IACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAErD,OAAO,CAAC,GAAW,EAAE,EAAE;QACrB,MAAM,aAAa,GAA2B,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAE3F,OAAO,CAAC,aAAa,CAAC,yBAAyB,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ABP, ConfigStateService } from '@abp/ng.core';\nimport { Injector } from '@angular/core';\nimport { ValidatorFn, Validators } from '@angular/forms';\nimport { PasswordRules, validatePassword } from '@ngx-validate/core';\n\nconst { minLength, maxLength } = Validators;\n\nexport function getPasswordValidators(injector: Injector): ValidatorFn[] {\n const getRule = getRuleFn(injector);\n\n const passwordRulesArr = [] as PasswordRules;\n let requiredLength = 1;\n\n if (getRule('RequireDigit') === 'true') {\n passwordRulesArr.push('number');\n }\n\n if (getRule('RequireLowercase') === 'true') {\n passwordRulesArr.push('small');\n }\n\n if (getRule('RequireUppercase') === 'true') {\n passwordRulesArr.push('capital');\n }\n\n if (getRule('RequireNonAlphanumeric') === 'true') {\n passwordRulesArr.push('special');\n }\n\n if (Number.isInteger(+getRule('RequiredLength'))) {\n requiredLength = +getRule('RequiredLength');\n }\n\n return [validatePassword(passwordRulesArr), minLength(requiredLength), maxLength(128)];\n}\n\nfunction getRuleFn(injector: Injector) {\n const configState = injector.get(ConfigStateService);\n\n return (key: string) => {\n const passwordRules: ABP.Dictionary<string> = configState.getSettings('Identity.Password');\n\n return (passwordRules[`Abp.Identity.Password.${key}`] || '').toLowerCase();\n };\n}\n"]}
1
+ {"version":3,"file":"validation-utils.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/utils/validation-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAe,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAiB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;AAE5C,MAAM,UAAU,qBAAqB,CAAC,QAAkB;IACtD,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,gBAAgB,GAAG,EAAmB,CAAC;IAC7C,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,MAAM,EAAE;QACtC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACjC;IAED,IAAI,OAAO,CAAC,kBAAkB,CAAC,KAAK,MAAM,EAAE;QAC1C,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;IAED,IAAI,OAAO,CAAC,kBAAkB,CAAC,KAAK,MAAM,EAAE;QAC1C,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClC;IAED,IAAI,OAAO,CAAC,wBAAwB,CAAC,KAAK,MAAM,EAAE;QAChD,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE;QAChD,cAAc,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;KAC7C;IAED,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,SAAS,CAAC,QAAkB;IACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAErD,OAAO,CAAC,GAAW,EAAE,EAAE;QACrB,MAAM,aAAa,GAA2B,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAE3F,OAAO,CAAC,aAAa,CAAC,yBAAyB,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ABP, ConfigStateService } from '@abp/ng.core';\r\nimport { Injector } from '@angular/core';\r\nimport { ValidatorFn, Validators } from '@angular/forms';\r\nimport { PasswordRules, validatePassword } from '@ngx-validate/core';\r\n\r\nconst { minLength, maxLength } = Validators;\r\n\r\nexport function getPasswordValidators(injector: Injector): ValidatorFn[] {\r\n const getRule = getRuleFn(injector);\r\n\r\n const passwordRulesArr = [] as PasswordRules;\r\n let requiredLength = 1;\r\n\r\n if (getRule('RequireDigit') === 'true') {\r\n passwordRulesArr.push('number');\r\n }\r\n\r\n if (getRule('RequireLowercase') === 'true') {\r\n passwordRulesArr.push('small');\r\n }\r\n\r\n if (getRule('RequireUppercase') === 'true') {\r\n passwordRulesArr.push('capital');\r\n }\r\n\r\n if (getRule('RequireNonAlphanumeric') === 'true') {\r\n passwordRulesArr.push('special');\r\n }\r\n\r\n if (Number.isInteger(+getRule('RequiredLength'))) {\r\n requiredLength = +getRule('RequiredLength');\r\n }\r\n\r\n return [validatePassword(passwordRulesArr), minLength(requiredLength), maxLength(128)];\r\n}\r\n\r\nfunction getRuleFn(injector: Injector) {\r\n const configState = injector.get(ConfigStateService);\r\n\r\n return (key: string) => {\r\n const passwordRules: ABP.Dictionary<string> = configState.getSettings('Identity.Password');\r\n\r\n return (passwordRules[`Abp.Identity.Password.${key}`] || '').toLowerCase();\r\n };\r\n}\r\n"]}
@@ -3,7 +3,6 @@
3
3
  */
4
4
  export * from './lib/animations';
5
5
  export * from './lib/components';
6
- export { BOOTSTRAP } from './lib/constants/styles';
7
6
  export * from './lib/constants/validation';
8
7
  export * from './lib/directives';
9
8
  export * from './lib/enums';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../packages/theme-shared/src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC","sourcesContent":["/*\n * Public API Surface of theme-shared\n */\n\nexport * from './lib/animations';\nexport * from './lib/components';\nexport { BOOTSTRAP } from './lib/constants/styles';\nexport * from './lib/constants/validation';\nexport * from './lib/directives';\nexport * from './lib/enums';\nexport * from './lib/handlers';\nexport * from './lib/models';\nexport * from './lib/providers';\nexport * from './lib/services';\nexport * from './lib/theme-shared.module';\nexport * from './lib/tokens';\nexport * from './lib/utils';\n"]}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../packages/theme-shared/src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC","sourcesContent":["/*\r\n * Public API Surface of theme-shared\r\n */\r\n\r\nexport * from './lib/animations';\r\nexport * from './lib/components';\r\nexport * from './lib/constants/validation';\r\nexport * from './lib/directives';\r\nexport * from './lib/enums';\r\nexport * from './lib/handlers';\r\nexport * from './lib/models';\r\nexport * from './lib/providers';\r\nexport * from './lib/services';\r\nexport * from './lib/theme-shared.module';\r\nexport * from './lib/tokens';\r\nexport * from './lib/utils';\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/testing/src/lib/models/config.ts"],"names":[],"mappings":"","sourcesContent":["import { Validation } from '@ngx-validate/core';\n\nexport interface Config {\n validation?: Partial<Validation.Config>;\n}\n"]}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/testing/src/lib/models/config.ts"],"names":[],"mappings":"","sourcesContent":["import { Validation } from '@ngx-validate/core';\r\n\r\nexport interface Config {\r\n validation?: Partial<Validation.Config>;\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/testing/src/lib/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC","sourcesContent":["export * from './config';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/testing/src/lib/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC","sourcesContent":["export * from './config';\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"theme-shared-testing.module.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/testing/src/lib/theme-shared-testing.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;;AAG5B;;GAEG;AAKH,MAAM,OAAO,wBAAwB;IACnC,MAAM,CAAC,UAAU,CACf,EAAE,UAAU,GAAG,EAAE,KAAK,EAAY;QAElC,OAAO;YACL,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE;gBACT,4BAA4B;gBAC5B,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,mBAAmB,EAAE;gBAClE;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,kCACH,6BAA6B,GAC7B,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CACjC;iBACF;gBACD;oBACE,OAAO,EAAE,wBAAwB;oBACjC,QAAQ,EAAE,UAAU,CAAC,WAAW,IAAI,kBAAkB;iBACvD;gBACD;oBACE,OAAO,EAAE,6BAA6B;oBACtC,QAAQ,EAAE,UAAU,CAAC,gBAAgB;iBACtC;aACF;SACF,CAAC;IACJ,CAAC;;qHA1BU,wBAAwB;sHAAxB,wBAAwB,YAFzB,mBAAmB,EAAE,qBAAqB,aAD1C,mBAAmB,EAAE,qBAAqB;sHAGzC,wBAAwB,YAF1B,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,EAD3C,mBAAmB,EAAE,qBAAqB;2FAGzC,wBAAwB;kBAJpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;oBACrD,OAAO,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;iBACtD","sourcesContent":["import {\n BaseThemeSharedModule,\n DateParserFormatter,\n DEFAULT_VALIDATION_BLUEPRINTS,\n THEME_SHARED_ROUTE_PROVIDERS,\n} from '@abp/ng.theme.shared';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterTestingModule } from '@angular/router/testing';\nimport { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\nimport {\n defaultMapErrorsFn,\n VALIDATION_BLUEPRINTS,\n VALIDATION_MAP_ERRORS_FN,\n VALIDATION_VALIDATE_ON_SUBMIT,\n} from '@ngx-validate/core';\nimport { Config } from './models/config';\n\n/**\n * ThemeSharedTestingModule is the module that will be used in tests\n */\n@NgModule({\n exports: [RouterTestingModule, BaseThemeSharedModule],\n imports: [RouterTestingModule, BaseThemeSharedModule],\n})\nexport class ThemeSharedTestingModule {\n static withConfig(\n { validation = {} } = {} as Config,\n ): ModuleWithProviders<ThemeSharedTestingModule> {\n return {\n ngModule: ThemeSharedTestingModule,\n providers: [\n THEME_SHARED_ROUTE_PROVIDERS,\n { provide: NgbDateParserFormatter, useClass: DateParserFormatter },\n {\n provide: VALIDATION_BLUEPRINTS,\n useValue: {\n ...DEFAULT_VALIDATION_BLUEPRINTS,\n ...(validation.blueprints || {}),\n },\n },\n {\n provide: VALIDATION_MAP_ERRORS_FN,\n useValue: validation.mapErrorsFn || defaultMapErrorsFn,\n },\n {\n provide: VALIDATION_VALIDATE_ON_SUBMIT,\n useValue: validation.validateOnSubmit,\n },\n ],\n };\n }\n}\n"]}
1
+ {"version":3,"file":"theme-shared-testing.module.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/testing/src/lib/theme-shared-testing.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;;AAG5B;;GAEG;AAKH,MAAM,OAAO,wBAAwB;IACnC,MAAM,CAAC,UAAU,CACf,EAAE,UAAU,GAAG,EAAE,KAAK,EAAY;QAElC,OAAO;YACL,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE;gBACT,4BAA4B;gBAC5B,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,mBAAmB,EAAE;gBAClE;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,kCACH,6BAA6B,GAC7B,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CACjC;iBACF;gBACD;oBACE,OAAO,EAAE,wBAAwB;oBACjC,QAAQ,EAAE,UAAU,CAAC,WAAW,IAAI,kBAAkB;iBACvD;gBACD;oBACE,OAAO,EAAE,6BAA6B;oBACtC,QAAQ,EAAE,UAAU,CAAC,gBAAgB;iBACtC;aACF;SACF,CAAC;IACJ,CAAC;;qHA1BU,wBAAwB;sHAAxB,wBAAwB,YAFzB,mBAAmB,EAAE,qBAAqB,aAD1C,mBAAmB,EAAE,qBAAqB;sHAGzC,wBAAwB,YAF1B,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,EAD3C,mBAAmB,EAAE,qBAAqB;2FAGzC,wBAAwB;kBAJpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;oBACrD,OAAO,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;iBACtD","sourcesContent":["import {\r\n BaseThemeSharedModule,\r\n DateParserFormatter,\r\n DEFAULT_VALIDATION_BLUEPRINTS,\r\n THEME_SHARED_ROUTE_PROVIDERS,\r\n} from '@abp/ng.theme.shared';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { RouterTestingModule } from '@angular/router/testing';\r\nimport { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n defaultMapErrorsFn,\r\n VALIDATION_BLUEPRINTS,\r\n VALIDATION_MAP_ERRORS_FN,\r\n VALIDATION_VALIDATE_ON_SUBMIT,\r\n} from '@ngx-validate/core';\r\nimport { Config } from './models/config';\r\n\r\n/**\r\n * ThemeSharedTestingModule is the module that will be used in tests\r\n */\r\n@NgModule({\r\n exports: [RouterTestingModule, BaseThemeSharedModule],\r\n imports: [RouterTestingModule, BaseThemeSharedModule],\r\n})\r\nexport class ThemeSharedTestingModule {\r\n static withConfig(\r\n { validation = {} } = {} as Config,\r\n ): ModuleWithProviders<ThemeSharedTestingModule> {\r\n return {\r\n ngModule: ThemeSharedTestingModule,\r\n providers: [\r\n THEME_SHARED_ROUTE_PROVIDERS,\r\n { provide: NgbDateParserFormatter, useClass: DateParserFormatter },\r\n {\r\n provide: VALIDATION_BLUEPRINTS,\r\n useValue: {\r\n ...DEFAULT_VALIDATION_BLUEPRINTS,\r\n ...(validation.blueprints || {}),\r\n },\r\n },\r\n {\r\n provide: VALIDATION_MAP_ERRORS_FN,\r\n useValue: validation.mapErrorsFn || defaultMapErrorsFn,\r\n },\r\n {\r\n provide: VALIDATION_VALIDATE_ON_SUBMIT,\r\n useValue: validation.validateOnSubmit,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../../packages/theme-shared/testing/src/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,cAAc,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,CAAC","sourcesContent":["import * as ThemeSharedTesting from './lib/models';\nexport * from './lib/theme-shared-testing.module';\nexport { ThemeSharedTesting };\n"]}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../../packages/theme-shared/testing/src/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,cAAc,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,CAAC","sourcesContent":["import * as ThemeSharedTesting from './lib/models';\r\nexport * from './lib/theme-shared-testing.module';\r\nexport { ThemeSharedTesting };\r\n"]}
@@ -235,25 +235,25 @@ class DateTimePickerComponent {
235
235
  }
236
236
  }
237
237
  DateTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: DateTimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
238
- DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: DateTimePickerComponent, selector: "abp-date-time-picker", inputs: { prop: "prop", meridian: "meridian" }, viewQueries: [{ propertyName: "date", first: true, predicate: NgbInputDatepicker, descendants: true }, { propertyName: "time", first: true, predicate: NgbTimepicker, descendants: true }], exportAs: ["abpDateTimePicker"], ngImport: i0, template: `
239
- <input
240
- [id]="prop.id"
241
- [formControlName]="prop.name"
242
- (ngModelChange)="setTime($event)"
243
- (click)="datepicker.open()"
244
- (keyup.space)="datepicker.open()"
245
- ngbDatepicker
246
- #datepicker="ngbDatepicker"
247
- type="text"
248
- class="form-control"
249
- />
250
- <ngb-timepicker
251
- #timepicker
252
- [formControlName]="prop.name"
253
- (ngModelChange)="setDate($event)"
254
- [meridian]="meridian"
255
- ></ngb-timepicker>
256
- `, isInline: true, components: [{ type: i2.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }], directives: [{ type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekdays", "showWeekNumbers", "startDate", "container", "positionTarget"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }], viewProviders: [
238
+ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: DateTimePickerComponent, selector: "abp-date-time-picker", inputs: { prop: "prop", meridian: "meridian" }, viewQueries: [{ propertyName: "date", first: true, predicate: NgbInputDatepicker, descendants: true }, { propertyName: "time", first: true, predicate: NgbTimepicker, descendants: true }], exportAs: ["abpDateTimePicker"], ngImport: i0, template: `
239
+ <input
240
+ [id]="prop.id"
241
+ [formControlName]="prop.name"
242
+ (ngModelChange)="setTime($event)"
243
+ (click)="datepicker.open()"
244
+ (keyup.space)="datepicker.open()"
245
+ ngbDatepicker
246
+ #datepicker="ngbDatepicker"
247
+ type="text"
248
+ class="form-control"
249
+ />
250
+ <ngb-timepicker
251
+ #timepicker
252
+ [formControlName]="prop.name"
253
+ (ngModelChange)="setDate($event)"
254
+ [meridian]="meridian"
255
+ ></ngb-timepicker>
256
+ `, isInline: true, components: [{ type: i2.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }], directives: [{ type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }], viewProviders: [
257
257
  {
258
258
  provide: ControlContainer,
259
259
  useFactory: selfFactory,
@@ -273,24 +273,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
273
273
  args: [{
274
274
  exportAs: 'abpDateTimePicker',
275
275
  selector: 'abp-date-time-picker',
276
- template: `
277
- <input
278
- [id]="prop.id"
279
- [formControlName]="prop.name"
280
- (ngModelChange)="setTime($event)"
281
- (click)="datepicker.open()"
282
- (keyup.space)="datepicker.open()"
283
- ngbDatepicker
284
- #datepicker="ngbDatepicker"
285
- type="text"
286
- class="form-control"
287
- />
288
- <ngb-timepicker
289
- #timepicker
290
- [formControlName]="prop.name"
291
- (ngModelChange)="setDate($event)"
292
- [meridian]="meridian"
293
- ></ngb-timepicker>
276
+ template: `
277
+ <input
278
+ [id]="prop.id"
279
+ [formControlName]="prop.name"
280
+ (ngModelChange)="setTime($event)"
281
+ (click)="datepicker.open()"
282
+ (keyup.space)="datepicker.open()"
283
+ ngbDatepicker
284
+ #datepicker="ngbDatepicker"
285
+ type="text"
286
+ class="form-control"
287
+ />
288
+ <ngb-timepicker
289
+ #timepicker
290
+ [formControlName]="prop.name"
291
+ (ngModelChange)="setDate($event)"
292
+ [meridian]="meridian"
293
+ ></ngb-timepicker>
294
294
  `,
295
295
  changeDetection: ChangeDetectionStrategy.OnPush,
296
296
  viewProviders: [
@@ -500,7 +500,7 @@ class ExtensibleFormPropComponent {
500
500
  }
501
501
  }
502
502
  ExtensibleFormPropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ExtensibleFormPropComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TrackByService }, { token: i1.ConfigStateService }, { token: i2$1.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component });
503
- ExtensibleFormPropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: { data: "data", prop: "prop", first: "first" }, viewQueries: [{ propertyName: "fieldRef", first: true, predicate: ["field"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"form-group\" *abpPermission=\"prop.permission\" [ngSwitch]=\"getComponent(prop)\">\n <ng-template ngSwitchCase=\"input\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [autocomplete]=\"prop.autocomplete\"\n [type]=\"getType(prop)\"\n [abpDisabled]=\"disabled\"\n [readonly]=\"readonly\"\n class=\"form-control\"\n />\n </ng-template>\n\n <ng-template ngSwitchCase=\"hidden\">\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\n </ng-template>\n\n <ng-template ngSwitchCase=\"checkbox\">\n <div class=\"custom-checkbox custom-control\" validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n type=\"checkbox\"\n class=\"custom-control-input\"\n />\n <ng-template\n [ngTemplateOutlet]=\"label\"\n [ngTemplateOutletContext]=\"{ $implicit: 'custom-control-label' }\"\n ></ng-template>\n </div>\n </ng-template>\n\n <ng-template ngSwitchCase=\"select\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <select\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n class=\"custom-select form-control\"\n >\n <option\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n [ngValue]=\"option.value\"\n >\n {{ option.key }}\n </option>\n </select>\n </ng-template>\n\n <ng-template ngSwitchCase=\"multiselect\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <select\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n multiple=\"multiple\"\n class=\"custom-select form-control\"\n >\n <option\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n [ngValue]=\"option.value\"\n >\n {{ option.key }}\n </option>\n </select>\n </ng-template>\n\n <ng-template ngSwitchCase=\"typeahead\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [autocomplete]=\"prop.autocomplete\"\n [abpDisabled]=\"disabled\"\n [ngbTypeahead]=\"search\"\n [editable]=\"false\"\n [inputFormatter]=\"typeaheadFormatter\"\n [resultFormatter]=\"typeaheadFormatter\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"typeaheadModel\"\n (selectItem)=\"setTypeaheadValue($event.item)\"\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\n class=\"form-control\"\n />\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\n </div>\n </ng-template>\n\n <ng-template ngSwitchCase=\"date\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <input\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n (click)=\"datepicker.open()\"\n (keyup.space)=\"datepicker.open()\"\n ngbDatepicker\n #datepicker=\"ngbDatepicker\"\n type=\"text\"\n class=\"form-control\"\n />\n </ng-template>\n\n <ng-template ngSwitchCase=\"time\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <ngb-timepicker [formControlName]=\"prop.name\"></ngb-timepicker>\n </ng-template>\n\n <ng-template ngSwitchCase=\"dateTime\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <abp-date-time-picker [prop]=\"prop\" [meridian]=\"meridian\"></abp-date-time-picker>\n </ng-template>\n\n <ng-template ngSwitchCase=\"textarea\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <textarea\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n [readonly]=\"readonly\"\n class=\"form-control\"\n ></textarea>\n </ng-template>\n</div>\n\n<ng-template #label let-classes>\n <label [htmlFor]=\"prop.id\" [ngClass]=\"classes\"\n >{{ prop.displayName | abpLocalization }} {{ asterisk }}</label\n >\n</ng-template>\n", components: [{ type: i2.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }, { type: DateTimePickerComponent, selector: "abp-date-time-picker", inputs: ["prop", "meridian"], exportAs: ["abpDateTimePicker"] }], directives: [{ type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }, { type: DisabledDirective, selector: "[abpDisabled]", inputs: ["abpDisabled"] }, { type: i6.ValidationTargetDirective, selector: "[validationTarget]" }, { type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2$1.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { type: i6.ValidationStyleDirective, selector: "[validationStyle]" }, { type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "placement", "container", "editable", "focusFirst", "showHint", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekdays", "showWeekNumbers", "startDate", "container", "positionTarget"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i5.AsyncPipe, "abpLocalization": i1.LocalizationPipe }, viewProviders: [
503
+ ExtensibleFormPropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: { data: "data", prop: "prop", first: "first" }, viewQueries: [{ propertyName: "fieldRef", first: true, predicate: ["field"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"mb-3 form-group\" *abpPermission=\"prop.permission\" [ngSwitch]=\"getComponent(prop)\">\r\n <ng-template ngSwitchCase=\"input\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [autocomplete]=\"prop.autocomplete\"\r\n [type]=\"getType(prop)\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"hidden\">\r\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"checkbox\">\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n />\r\n <ng-template\r\n [ngTemplateOutlet]=\"label\"\r\n [ngTemplateOutletContext]=\"{ $implicit: 'form-check-label' }\"\r\n ></ng-template>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"select\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <select\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n class=\"form-select form-control\"\r\n >\r\n <option\r\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.key }}\r\n </option>\r\n </select>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"multiselect\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <select\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n multiple=\"multiple\"\r\n class=\"form-select form-control\"\r\n >\r\n <option\r\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.key }}\r\n </option>\r\n </select>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"typeahead\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [autocomplete]=\"prop.autocomplete\"\r\n [abpDisabled]=\"disabled\"\r\n [ngbTypeahead]=\"search\"\r\n [editable]=\"false\"\r\n [inputFormatter]=\"typeaheadFormatter\"\r\n [resultFormatter]=\"typeaheadFormatter\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n [(ngModel)]=\"typeaheadModel\"\r\n (selectItem)=\"setTypeaheadValue($event.item)\"\r\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\r\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\r\n class=\"form-control\"\r\n />\r\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"date\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <input\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n (click)=\"datepicker.open()\"\r\n (keyup.space)=\"datepicker.open()\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"time\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <ngb-timepicker [formControlName]=\"prop.name\"></ngb-timepicker>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"dateTime\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <abp-date-time-picker [prop]=\"prop\" [meridian]=\"meridian\"></abp-date-time-picker>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"textarea\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <textarea\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n ></textarea>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #label let-classes>\r\n <label [htmlFor]=\"prop.id\" [ngClass]=\"classes || 'form-label'\"\r\n >{{ prop.displayName | abpLocalization }} {{ asterisk }}</label\r\n >\r\n</ng-template>\r\n", components: [{ type: i2.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }, { type: DateTimePickerComponent, selector: "abp-date-time-picker", inputs: ["prop", "meridian"], exportAs: ["abpDateTimePicker"] }], directives: [{ type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }, { type: DisabledDirective, selector: "[abpDisabled]", inputs: ["abpDisabled"] }, { type: i6.ValidationTargetDirective, selector: "[validationTarget]" }, { type: i2$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2$1.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { type: i6.ValidationStyleDirective, selector: "[validationStyle]" }, { type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "placement", "container", "editable", "focusFirst", "showHint", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i5.AsyncPipe, "abpLocalization": i1.LocalizationPipe }, viewProviders: [
504
504
  {
505
505
  provide: ControlContainer,
506
506
  useFactory: selfFactory,
@@ -768,7 +768,7 @@ class ExtensibleFormComponent {
768
768
  }
769
769
  }
770
770
  ExtensibleFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ExtensibleFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TrackByService }, { token: i2$1.ControlContainer }, { token: ExtensionsService }, { token: EXTENSIONS_IDENTIFIER }], target: i0.ɵɵFactoryTarget.Component });
771
- ExtensibleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: { selectedRecord: "selectedRecord" }, viewQueries: [{ propertyName: "formProps", predicate: ExtensibleFormPropComponent, descendants: true }], exportAs: ["abpExtensibleForm"], ngImport: i0, template: "<ng-container *ngIf=\"form\">\n <ng-container *abpPropData=\"let data; fromList: propList; withRecord: record\">\n <ng-container *ngFor=\"let prop of propList; let first = first; trackBy: track.by('name')\">\n <ng-container *ngIf=\"prop.visible(data)\">\n <ng-container\n [formGroupName]=\"extraPropertiesKey\"\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\n >\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"></abp-extensible-form-prop>\n </ng-container>\n\n <ng-template #tempDefault>\n <abp-extensible-form-prop\n *ngIf=\"form.get(prop.name)\"\n [prop]=\"prop\"\n [data]=\"data\"\n [first]=\"first\"\n ></abp-extensible-form-prop>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n", components: [{ type: ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: ["data", "prop", "first"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: PropDataDirective, selector: "[abpPropData]", inputs: ["abpPropDataFromList", "abpPropDataWithRecord", "abpPropDataAtIndex"], exportAs: ["abpPropData"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }], viewProviders: [
771
+ ExtensibleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: { selectedRecord: "selectedRecord" }, viewQueries: [{ propertyName: "formProps", predicate: ExtensibleFormPropComponent, descendants: true }], exportAs: ["abpExtensibleForm"], ngImport: i0, template: "<ng-container *ngIf=\"form\">\r\n <ng-container *abpPropData=\"let data; fromList: propList; withRecord: record\">\r\n <ng-container *ngFor=\"let prop of propList; let first = first; trackBy: track.by('name')\">\r\n <ng-container *ngIf=\"prop.visible(data)\">\r\n <ng-container\r\n [formGroupName]=\"extraPropertiesKey\"\r\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\r\n >\r\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"></abp-extensible-form-prop>\r\n </ng-container>\r\n\r\n <ng-template #tempDefault>\r\n <abp-extensible-form-prop\r\n *ngIf=\"form.get(prop.name)\"\r\n [prop]=\"prop\"\r\n [data]=\"data\"\r\n [first]=\"first\"\r\n ></abp-extensible-form-prop>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n", components: [{ type: ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: ["data", "prop", "first"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: PropDataDirective, selector: "[abpPropData]", inputs: ["abpPropDataFromList", "abpPropDataWithRecord", "abpPropDataAtIndex"], exportAs: ["abpPropData"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i6.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }], viewProviders: [
772
772
  {
773
773
  provide: ControlContainer,
774
774
  useFactory: selfFactory,
@@ -834,7 +834,7 @@ GridActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
834
834
  provide: EXTENSIONS_ACTION_TYPE,
835
835
  useValue: 'entityActions',
836
836
  },
837
- ], exportAs: ["abpGridActions"], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i [ngClass]=\"icon\" [class.mr-1]=\"icon\"></i>{{ text | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <ng-container\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\n >\n </ng-container>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"actionList.length === 1\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\n></ng-container>\n\n<ng-template #btnItem let-action>\n <ng-container *ngIf=\"action.visible(data)\">\n <button\n ngbDropdownItem\n *abpPermission=\"action.permission\"\n (click)=\"action.action(data)\"\n type=\"button\"\n class=\"{{ actionList.length === 1 ? 'btn btn-primary' : '' }}\"\n [class.text-center]=\"actionList.length === 1\"\n >\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\n <ng-template #ellipsis>\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\n </ng-template>\n </button>\n </ng-container>\n</ng-template>\n", directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i2.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i4.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], pipes: { "abpLocalization": i1.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
837
+ ], exportAs: ["abpGridActions"], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <ng-container\r\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"btnItem\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-container\r\n *ngIf=\"actionList.length === 1\"\r\n [ngTemplateOutlet]=\"btnItem\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n></ng-container>\r\n\r\n<ng-template #btnItem let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n class=\"{{ actionList.length === 1 ? 'btn btn-primary' : '' }}\"\r\n [class.text-center]=\"actionList.length === 1\"\r\n >\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\r\n <ng-template #ellipsis>\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n </ng-template>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n", directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i2.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i4.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], pipes: { "abpLocalization": i1.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
838
838
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: GridActionsComponent, decorators: [{
839
839
  type: Component,
840
840
  args: [{
@@ -953,7 +953,7 @@ class ExtensibleTableComponent {
953
953
  }
954
954
  }
955
955
  ExtensibleTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ExtensibleTableComponent, deps: [{ token: LOCALE_ID }, { token: i1.ConfigStateService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
956
- ExtensibleTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ExtensibleTableComponent, selector: "abp-extensible-table", inputs: { actionsText: "actionsText", data: "data", list: "list", recordsTotal: "recordsTotal", actionsColumnWidth: "actionsColumnWidth", actionsTemplate: "actionsTemplate" }, exportAs: ["abpExtensibleTable"], usesOnChanges: true, ngImport: i0, template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\n [name]=\"actionsText | abpLocalization\"\n [maxWidth]=\"columnWidths[0]\"\n [width]=\"columnWidths[0]\"\n [sortable]=\"false\"\n >\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n <ng-container\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\n ></ng-container>\n <ng-template #gridActions>\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\n </ng-template>\n </ng-template>\n </ngx-datatable-column>\n\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\n <ngx-datatable-column\n [width]=\"columnWidths[i + 1] || 200\"\n [name]=\"prop.displayName | abpLocalization\"\n [prop]=\"prop.name\"\n [sortable]=\"prop.sortable\"\n >\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\n <ng-container *abpPermission=\"prop.permission\">\n <ng-container *ngIf=\"row['_' + prop.name]?.visible\">\n <div\n *ngIf=\"!row['_' + prop.name].component; else component\"\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\n (click)=\"\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\n \"\n [class.pointer]=\"prop.action\"\n ></div>\n </ng-container>\n <ng-template #component>\n <ng-container\n *ngComponentOutlet=\"\n row['_' + prop.name].component;\n injector: row['_' + prop.name].injector\n \"\n ></ng-container>\n </ng-template>\n </ng-container>\n </ng-template>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n", components: [{ type: i2$2.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: GridActionsComponent, selector: "abp-grid-actions", inputs: ["icon", "index", "text"], exportAs: ["abpGridActions"] }], directives: [{ type: i4.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { type: i4.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$2.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i2$2.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
956
+ ExtensibleTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ExtensibleTableComponent, selector: "abp-extensible-table", inputs: { actionsText: "actionsText", data: "data", list: "list", recordsTotal: "recordsTotal", actionsColumnWidth: "actionsColumnWidth", actionsTemplate: "actionsTemplate" }, exportAs: ["abpExtensibleTable"], usesOnChanges: true, ngImport: i0, template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\r\n <ngx-datatable-column\r\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\r\n [name]=\"actionsText | abpLocalization\"\r\n [maxWidth]=\"columnWidths[0]\"\r\n [width]=\"columnWidths[0]\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\r\n ></ng-container>\r\n <ng-template #gridActions>\r\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\r\n <ngx-datatable-column\r\n [width]=\"columnWidths[i + 1] || 200\"\r\n [name]=\"prop.displayName | abpLocalization\"\r\n [prop]=\"prop.name\"\r\n [sortable]=\"prop.sortable\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\r\n <ng-container *abpPermission=\"prop.permission\">\r\n <ng-container *ngIf=\"row['_' + prop.name]?.visible\">\r\n <div\r\n *ngIf=\"!row['_' + prop.name].component; else component\"\r\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\r\n (click)=\"\r\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n </ng-container>\r\n <ng-template #component>\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n row['_' + prop.name].component;\r\n injector: row['_' + prop.name].injector\r\n \"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n</ngx-datatable>\r\n", components: [{ type: i2$2.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: GridActionsComponent, selector: "abp-grid-actions", inputs: ["icon", "index", "text"], exportAs: ["abpGridActions"] }], directives: [{ type: i4.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { type: i4.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$2.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i2$2.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
957
957
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ExtensibleTableComponent, decorators: [{
958
958
  type: Component,
959
959
  args: [{
@@ -1002,7 +1002,7 @@ PageToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
1002
1002
  provide: EXTENSIONS_ACTION_TYPE,
1003
1003
  useValue: 'toolbarActions',
1004
1004
  },
1005
- ], exportAs: ["abpPageToolbar"], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end mx-n1\" id=\"AbpContentToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2\" *ngFor=\"let action of actionList; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.visible(data)\">\n <ng-container *abpPermission=\"action.permission\">\n <ng-container *ngIf=\"action.component as component; else button\">\n <ng-container\n *ngComponentOutlet=\"component; injector: createInjector(action)\"\n ></ng-container>\n </ng-container>\n\n <ng-template #button>\n <button (click)=\"action.action(data)\" type=\"button\" class=\"btn btn-primary btn-sm\">\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n {{ action.text | abpLocalization }}\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "abpLocalization": i1.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1005
+ ], exportAs: ["abpPageToolbar"], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end mx-0\" id=\"AbpContentToolbar\">\r\n <div\r\n class=\"col-auto px-1 pt-0 pt-md-2\"\r\n [class.pe-0]=\"last\"\r\n *ngFor=\"let action of actionList; trackBy: trackByFn; let last = last\"\r\n >\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <ng-container *abpPermission=\"action.permission\">\r\n <ng-container *ngIf=\"action.component as component; else button\">\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: createInjector(action)\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #button>\r\n <button (click)=\"action.action(data)\" type=\"button\" class=\"btn btn-primary btn-sm\">\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n {{ action.text | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "abpLocalization": i1.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1006
1006
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageToolbarComponent, decorators: [{
1007
1007
  type: Component,
1008
1008
  args: [{