@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,3 +1,2 @@
1
- declare const _default: "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n padding-right: calc(1.5em + .75rem);\n background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e);\n background-repeat: no-repeat;\n background-position: right calc(.375em + .1875rem) center;\n background-size: calc(.75em + .375rem) calc(.75em + .375rem);\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n[dir=rtl] .data-tables-filter {\n text-align: left;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.datatable-scroll {\n margin-bottom: 5px !important;\n width: unset !important;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar {\n height: 5px !important;\n width: 5px !important;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-track {\n background: #ddd;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-thumb {\n background: #8a8686;\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ui-widget-overlay {\n z-index: 1000;\n}\n\n.color-white {\n color: #FFF !important;\n}\n\n.custom-checkbox > label {\n cursor: pointer;\n}\n\n/* <animations */\n\n.fade-in-top {\n animation: fadeInTop 0.2s ease-in-out;\n}\n\n.fade-out-top {\n animation: fadeOutTop 0.2s ease-in-out;\n}\n\n.abp-collapsed-height {\n -moz-transition: max-height linear 0.35s;\n -ms-transition: max-height linear 0.35s;\n -o-transition: max-height linear 0.35s;\n -webkit-transition: max-height linear 0.35s;\n overflow:hidden;\n transition:max-height 0.35s linear;\n height:auto;\n max-height: 0;\n}\n\n.abp-mh-25 {\n max-height: 25vh;\n}\n\n.abp-mh-50 {\n transition:max-height 0.65s linear;\n max-height: 50vh;\n}\n\n.abp-mh-75 {\n transition:max-height 0.85s linear;\n max-height: 75vh;\n}\n\n.abp-mh-100 {\n transition:max-height 1s linear;\n max-height: 100vh;\n}\n\n[class^=\"sorting\"] {\n opacity: .3;\n cursor: pointer;\n}\n[class^=\"sorting\"]:before {\n right: 0.5rem;\n content: \"↑\";\n}\n[class^=\"sorting\"]:after {\n right: 0.5rem;\n content: \"↓\";\n}\n\n.sorting_desc {\n opacity: 1;\n}\n.sorting_desc:before {\n opacity: .3;\n}\n\n.sorting_asc {\n opacity: 1;\n}\n.sorting_asc:after {\n opacity: .3;\n}\n.ngx-datatable.material {\n box-shadow: none;\n}\nngb-typeahead-window, ngb-typeahead-window.dropdown-menu {\n max-height: 25em;\n overflow-y: scroll !important;\n z-index: 1050;\n}\n\n@keyframes fadeInTop {\n from {\n transform: translateY(-5px);\n opacity: 0;\n }\n\n to {\n transform: translateY(0px);\n opacity: 1;\n }\n}\n\n@keyframes fadeOutTop {\n to {\n transform: translateY(-5px);\n opacity: 0;\n }\n}\n\n/* </animations */\n\n";
1
+ declare const _default: "\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n padding-right: calc(1.5em + .75rem);\n background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e);\n background-repeat: no-repeat;\n background-position: right calc(.375em + .1875rem) center;\n background-size: calc(.75em + .375rem) calc(.75em + .375rem);\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n[dir=rtl] .data-tables-filter {\n text-align: left;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.datatable-scroll {\n margin-bottom: 5px !important;\n width: unset !important;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar {\n height: 5px !important;\n width: 5px !important;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-track {\n background: #ddd;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-thumb {\n background: #8a8686;\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ui-widget-overlay {\n z-index: 1000;\n}\n\n.color-white {\n color: #FFF !important;\n}\n\n.custom-checkbox > label {\n cursor: pointer;\n}\n\n/* <animations */\n\n.fade-in-top {\n animation: fadeInTop 0.2s ease-in-out;\n}\n\n.fade-out-top {\n animation: fadeOutTop 0.2s ease-in-out;\n}\n\n.abp-collapsed-height {\n -moz-transition: max-height linear 0.35s;\n -ms-transition: max-height linear 0.35s;\n -o-transition: max-height linear 0.35s;\n -webkit-transition: max-height linear 0.35s;\n overflow:hidden;\n transition:max-height 0.35s linear;\n height:auto;\n max-height: 0;\n}\n\n.abp-mh-25 {\n max-height: 25vh;\n}\n\n.abp-mh-50 {\n transition:max-height 0.65s linear;\n max-height: 50vh;\n}\n\n.abp-mh-75 {\n transition:max-height 0.85s linear;\n max-height: 75vh;\n}\n\n.abp-mh-100 {\n transition:max-height 1s linear;\n max-height: 100vh;\n}\n\n[class^=\"sorting\"] {\n opacity: .3;\n cursor: pointer;\n}\n[class^=\"sorting\"]:before {\n right: 0.5rem;\n content: \"↑\";\n}\n[class^=\"sorting\"]:after {\n right: 0.5rem;\n content: \"↓\";\n}\n\n.sorting_desc {\n opacity: 1;\n}\n.sorting_desc:before {\n opacity: .3;\n}\n\n.sorting_asc {\n opacity: 1;\n}\n.sorting_asc:after {\n opacity: .3;\n}\n.ngx-datatable.material {\n box-shadow: none;\n}\nngb-typeahead-window, ngb-typeahead-window.dropdown-menu {\n max-height: 25em;\n overflow-y: scroll !important;\n z-index: 1050;\n}\n\n@keyframes fadeInTop {\n from {\n transform: translateY(-5px);\n opacity: 0;\n }\n\n to {\n transform: translateY(0px);\n opacity: 1;\n }\n}\n\n@keyframes fadeOutTop {\n to {\n transform: translateY(-5px);\n opacity: 0;\n }\n}\n\n/* </animations */\n.ngb-dp-body {\n z-index: 1055 !important;\n}\n";
2
2
  export default _default;
3
- export declare const BOOTSTRAP = "bootstrap-{{dir}}.min.css";
@@ -0,0 +1,13 @@
1
+ import { Injector } from '@angular/core';
2
+ import { LocaleDirection } from '../models/common';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DocumentDirHandlerService {
5
+ protected injector: Injector;
6
+ private dir;
7
+ dir$: import("rxjs").Observable<LocaleDirection>;
8
+ constructor(injector: Injector);
9
+ private listenToLanguageChanges;
10
+ private setBodyDir;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<DocumentDirHandlerService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<DocumentDirHandlerService>;
13
+ }
@@ -1,2 +1,2 @@
1
+ export * from './document-dir.handler';
1
2
  export * from './error.handler';
2
- export * from './lazy-style.handler';
@@ -1,5 +1,4 @@
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';
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@abp/ng.theme.shared",
3
- "version": "5.0.0-beta.1",
3
+ "version": "5.0.0-beta.3-1",
4
4
  "homepage": "https://abp.io",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/abpframework/abp.git"
8
8
  },
9
9
  "dependencies": {
10
- "@abp/ng.core": "~4.4.3",
10
+ "@abp/ng.core": "~5.0.0-beta.3-1",
11
11
  "@fortawesome/fontawesome-free": "^5.15.4",
12
- "@ng-bootstrap/ng-bootstrap": "^7.0.0",
12
+ "@ng-bootstrap/ng-bootstrap": "^11.0.0-beta.2",
13
13
  "@ngx-validate/core": "^0.0.13",
14
14
  "@swimlane/ngx-datatable": "^19.0.0",
15
- "bootstrap": "~4.6.0",
15
+ "bootstrap": "^5.1.1",
16
16
  "tslib": "^2.0.0"
17
17
  },
18
18
  "publishConfig": {
package/public-api.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from './lib/animations';
2
2
  export * from './lib/components';
3
- export { BOOTSTRAP } from './lib/constants/styles';
4
3
  export * from './lib/constants/validation';
5
4
  export * from './lib/directives';
6
5
  export * from './lib/enums';
@@ -1,89 +0,0 @@
1
- import { getLocaleDirection, LazyLoadService, LOADING_STRATEGY, LocalizationService, } from '@abp/ng.core';
2
- import { Injectable, Injector } from '@angular/core';
3
- import { startWith } from 'rxjs/operators';
4
- import { BOOTSTRAP } from '../constants/styles';
5
- import { LAZY_STYLES } from '../tokens/lazy-styles.token';
6
- import * as i0 from "@angular/core";
7
- export class LazyStyleHandler {
8
- constructor(injector) {
9
- this._dir = 'ltr';
10
- this.loaded = new Map();
11
- this.setStyles(injector);
12
- this.setLazyLoad(injector);
13
- this.listenToLanguageChanges(injector);
14
- }
15
- set dir(dir) {
16
- if (dir === this._dir)
17
- return;
18
- this.switchCSS(dir);
19
- this.setBodyDir(dir);
20
- this._dir = dir;
21
- }
22
- get dir() {
23
- return this._dir;
24
- }
25
- getHrefFromLink(link) {
26
- if (!link)
27
- return '';
28
- const a = document.createElement('a');
29
- a.href = link.href;
30
- return a.pathname.replace(/^\//, '');
31
- }
32
- getLoadedBootstrap() {
33
- const href = createLazyStyleHref(BOOTSTRAP, this.dir);
34
- const selector = `[href*="${href.replace(/\.css$/, '')}"]`;
35
- const link = document.querySelector(selector);
36
- return { href, link };
37
- }
38
- listenToLanguageChanges(injector) {
39
- const l10n = injector.get(LocalizationService);
40
- // will always listen, no need to unsubscribe
41
- l10n.languageChange$.pipe(startWith(l10n.currentLang)).subscribe(locale => {
42
- this.dir = getLocaleDirection(locale);
43
- });
44
- }
45
- setBodyDir(dir) {
46
- document.body.dir = dir;
47
- }
48
- setLazyLoad(injector) {
49
- this.lazyLoad = injector.get(LazyLoadService);
50
- const { href, link } = this.getLoadedBootstrap();
51
- this.lazyLoad.loaded.set(href, link);
52
- }
53
- setStyles(injector) {
54
- this.styles = injector.get(LAZY_STYLES, [BOOTSTRAP]);
55
- }
56
- switchCSS(dir) {
57
- this.styles.forEach(style => {
58
- const oldHref = createLazyStyleHref(style, this.dir);
59
- const newHref = createLazyStyleHref(style, dir);
60
- const link = this.loaded.get(newHref);
61
- const href = this.getHrefFromLink(link) || newHref;
62
- const strategy = LOADING_STRATEGY.PrependAnonymousStyleToHead(href);
63
- this.lazyLoad.load(strategy).subscribe(() => {
64
- const oldLink = this.lazyLoad.loaded.get(oldHref);
65
- this.loaded.delete(newHref);
66
- this.loaded.set(oldHref, oldLink);
67
- const newLink = this.lazyLoad.loaded.get(href);
68
- this.lazyLoad.loaded.delete(href);
69
- this.lazyLoad.loaded.set(newHref, newLink);
70
- this.lazyLoad.remove(oldHref);
71
- });
72
- });
73
- }
74
- }
75
- LazyStyleHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LazyStyleHandler, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
76
- LazyStyleHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LazyStyleHandler, providedIn: 'root' });
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LazyStyleHandler, decorators: [{
78
- type: Injectable,
79
- args: [{
80
- providedIn: 'root',
81
- }]
82
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
83
- export function createLazyStyleHref(style, dir) {
84
- return style.replace(/{{\s*dir\s*}}/g, dir);
85
- }
86
- export function initLazyStyleHandler(injector) {
87
- return () => new LazyStyleHandler(injector);
88
- }
89
- //# sourceMappingURL=lazy-style.handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazy-style.handler.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/handlers/lazy-style.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAO,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;;AAK1D,MAAM,OAAO,gBAAgB;IAmB3B,YAAY,QAAkB;QAhBtB,SAAI,GAAoB,KAAK,CAAC;QAE7B,WAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;QAenD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAhBD,IAAI,GAAG,CAAC,GAAoB;QAC1B,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO;QAE9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAQO,eAAe,CAAC,IAA4B;QAClD,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,kBAAkB;QACxB,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC;QAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAkB,QAAQ,CAAC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAEO,uBAAuB,CAAC,QAAkB;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAE/C,6CAA6C;QAC7C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxE,IAAI,CAAC,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,GAAoB;QACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,QAAkB;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAEO,SAAS,CAAC,QAAkB;QAClC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,CAAC;IAEO,SAAS,CAAC,GAAoB;QACpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;YAEnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAoB,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAoB,CAAC;gBAClE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;;6GAjFU,gBAAgB;iHAAhB,gBAAgB,cAFf,MAAM;2FAEP,gBAAgB;kBAH5B,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;AAqFD,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW;IAC5D,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAkB;IACrD,OAAO,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC","sourcesContent":["import {\n getLocaleDirection,\n LazyLoadService,\n LOADING_STRATEGY,\n LocalizationService,\n} from '@abp/ng.core';\nimport { Injectable, Injector } from '@angular/core';\nimport { map, startWith } from 'rxjs/operators';\nimport { BOOTSTRAP } from '../constants/styles';\nimport { LocaleDirection } from '../models/common';\nimport { LAZY_STYLES } from '../tokens/lazy-styles.token';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyStyleHandler {\n private lazyLoad: LazyLoadService;\n private styles: string[];\n private _dir: LocaleDirection = 'ltr';\n\n readonly loaded = new Map<string, HTMLLinkElement>();\n\n set dir(dir: LocaleDirection) {\n if (dir === this._dir) return;\n\n this.switchCSS(dir);\n this.setBodyDir(dir);\n this._dir = dir;\n }\n\n get dir(): LocaleDirection {\n return this._dir;\n }\n\n constructor(injector: Injector) {\n this.setStyles(injector);\n this.setLazyLoad(injector);\n this.listenToLanguageChanges(injector);\n }\n\n private getHrefFromLink(link: HTMLLinkElement | null): string {\n if (!link) return '';\n\n const a = document.createElement('a');\n a.href = link.href;\n return a.pathname.replace(/^\\//, '');\n }\n\n private getLoadedBootstrap(): LoadedStyle {\n const href = createLazyStyleHref(BOOTSTRAP, this.dir);\n const selector = `[href*=\"${href.replace(/\\.css$/, '')}\"]`;\n const link = document.querySelector<HTMLLinkElement>(selector);\n return { href, link };\n }\n\n private listenToLanguageChanges(injector: Injector) {\n const l10n = injector.get(LocalizationService);\n\n // will always listen, no need to unsubscribe\n l10n.languageChange$.pipe(startWith(l10n.currentLang)).subscribe(locale => {\n this.dir = getLocaleDirection(locale);\n });\n }\n\n private setBodyDir(dir: LocaleDirection) {\n document.body.dir = dir;\n }\n\n private setLazyLoad(injector: Injector) {\n this.lazyLoad = injector.get(LazyLoadService);\n const { href, link } = this.getLoadedBootstrap();\n this.lazyLoad.loaded.set(href, link);\n }\n\n private setStyles(injector: Injector) {\n this.styles = injector.get(LAZY_STYLES, [BOOTSTRAP]);\n }\n\n private switchCSS(dir: LocaleDirection) {\n this.styles.forEach(style => {\n const oldHref = createLazyStyleHref(style, this.dir);\n const newHref = createLazyStyleHref(style, dir);\n const link = this.loaded.get(newHref);\n const href = this.getHrefFromLink(link) || newHref;\n\n const strategy = LOADING_STRATEGY.PrependAnonymousStyleToHead(href);\n this.lazyLoad.load(strategy).subscribe(() => {\n const oldLink = this.lazyLoad.loaded.get(oldHref) as HTMLLinkElement;\n this.loaded.delete(newHref);\n this.loaded.set(oldHref, oldLink);\n const newLink = this.lazyLoad.loaded.get(href) as HTMLLinkElement;\n this.lazyLoad.loaded.delete(href);\n this.lazyLoad.loaded.set(newHref, newLink);\n this.lazyLoad.remove(oldHref);\n });\n });\n }\n}\n\nexport function createLazyStyleHref(style: string, dir: string): string {\n return style.replace(/{{\\s*dir\\s*}}/g, dir);\n}\n\nexport function initLazyStyleHandler(injector: Injector) {\n return () => new LazyStyleHandler(injector);\n}\n\ninterface LoadedStyle {\n href: string;\n link: HTMLLinkElement;\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const LAZY_STYLES = new InjectionToken('LAZY_STYLES');
3
- //# sourceMappingURL=lazy-styles.token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazy-styles.token.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/tokens/lazy-styles.token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,cAAc,CAAW,aAAa,CAAC,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const LAZY_STYLES = new InjectionToken<string[]>('LAZY_STYLES');\n"]}
@@ -1,23 +0,0 @@
1
- import { Injector } from '@angular/core';
2
- import { LocaleDirection } from '../models/common';
3
- import * as i0 from "@angular/core";
4
- export declare class LazyStyleHandler {
5
- private lazyLoad;
6
- private styles;
7
- private _dir;
8
- readonly loaded: Map<string, HTMLLinkElement>;
9
- set dir(dir: LocaleDirection);
10
- get dir(): LocaleDirection;
11
- constructor(injector: Injector);
12
- private getHrefFromLink;
13
- private getLoadedBootstrap;
14
- private listenToLanguageChanges;
15
- private setBodyDir;
16
- private setLazyLoad;
17
- private setStyles;
18
- private switchCSS;
19
- static ɵfac: i0.ɵɵFactoryDeclaration<LazyStyleHandler, never>;
20
- static ɵprov: i0.ɵɵInjectableDeclaration<LazyStyleHandler>;
21
- }
22
- export declare function createLazyStyleHref(style: string, dir: string): string;
23
- export declare function initLazyStyleHandler(injector: Injector): () => LazyStyleHandler;
@@ -1,2 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export declare const LAZY_STYLES: InjectionToken<string[]>;