@abp/ng.theme.shared 5.0.0-beta.2 → 5.0.0-beta.3

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 (47) hide show
  1. package/bundles/abp-ng.theme.shared-extensions.umd.js +4 -4
  2. package/bundles/abp-ng.theme.shared-extensions.umd.js.map +1 -1
  3. package/bundles/abp-ng.theme.shared.umd.js +44 -110
  4. package/bundles/abp-ng.theme.shared.umd.js.map +1 -1
  5. package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js +1 -1
  6. package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js.map +1 -1
  7. package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js +1 -1
  8. package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js.map +1 -1
  9. package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js +1 -1
  10. package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js.map +1 -1
  11. package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js +1 -1
  12. package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js.map +1 -1
  13. package/esm2015/lib/components/button/button.component.js +2 -2
  14. package/esm2015/lib/components/button/button.component.js.map +1 -1
  15. package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js +1 -1
  16. package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js.map +1 -1
  17. package/esm2015/lib/components/modal/modal.component.js +1 -1
  18. package/esm2015/lib/components/modal/modal.component.js.map +1 -1
  19. package/esm2015/lib/constants/styles.js +3 -2
  20. package/esm2015/lib/constants/styles.js.map +1 -1
  21. package/esm2015/lib/handlers/document-dir.handler.js +33 -0
  22. package/esm2015/lib/handlers/document-dir.handler.js.map +1 -0
  23. package/esm2015/lib/handlers/index.js +1 -1
  24. package/esm2015/lib/handlers/index.js.map +1 -1
  25. package/esm2015/lib/theme-shared.module.js +10 -9
  26. package/esm2015/lib/theme-shared.module.js.map +1 -1
  27. package/esm2015/lib/tokens/index.js +0 -1
  28. package/esm2015/lib/tokens/index.js.map +1 -1
  29. package/esm2015/public-api.js +0 -1
  30. package/esm2015/public-api.js.map +1 -1
  31. package/fesm2015/abp-ng.theme.shared-extensions.js +4 -4
  32. package/fesm2015/abp-ng.theme.shared-extensions.js.map +1 -1
  33. package/fesm2015/abp-ng.theme.shared.js +225 -280
  34. package/fesm2015/abp-ng.theme.shared.js.map +1 -1
  35. package/lib/constants/styles.d.ts +1 -2
  36. package/lib/handlers/document-dir.handler.d.ts +13 -0
  37. package/lib/handlers/index.d.ts +1 -1
  38. package/lib/tokens/index.d.ts +0 -1
  39. package/package.json +4 -4
  40. package/public-api.d.ts +0 -1
  41. package/esm2015/lib/handlers/lazy-style.handler.js +0 -89
  42. package/esm2015/lib/handlers/lazy-style.handler.js.map +0 -1
  43. package/esm2015/lib/tokens/lazy-styles.token.js +0 -3
  44. package/esm2015/lib/tokens/lazy-styles.token.js.map +0 -1
  45. package/lib/handlers/lazy-style.handler.d.ts +0 -23
  46. package/lib/tokens/lazy-styles.token.d.ts +0 -2
  47. package/styles/bootstrap-rtl.min.css +0 -7
@@ -1,15 +1,15 @@
1
1
  import { animation, style, animate, keyframes, trigger, state, transition, useAnimation, query } from '@angular/animations';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, Input, ChangeDetectionStrategy, EventEmitter, Output, ViewChild, ViewEncapsulation, Injectable, InjectionToken, Optional, Inject, ContentChild, Directive, HostListener, HostBinding, NgModule, ComponentFactoryResolver, RendererFactory2, ApplicationRef, APP_INITIALIZER, inject, LOCALE_ID, Injector } from '@angular/core';
3
+ import { Component, Input, ChangeDetectionStrategy, EventEmitter, Output, ViewChild, ViewEncapsulation, Injectable, InjectionToken, Optional, Inject, ContentChild, Directive, HostListener, HostBinding, NgModule, ComponentFactoryResolver, RendererFactory2, ApplicationRef, APP_INITIALIZER, inject, LOCALE_ID } from '@angular/core';
4
4
  import * as i1 from '@angular/common';
5
5
  import { DOCUMENT, formatDate, DatePipe } from '@angular/common';
6
6
  import * as i1$1 from '@angular/router';
7
7
  import { ResolveEnd } from '@angular/router';
8
8
  import * as i2 from '@abp/ng.core';
9
- import { getRoutePath, SubscriptionService, PROJECTION_STRATEGY, uuid, HttpErrorReporterService, RouterEvents, AuthService, LocalizationService, getLocaleDirection, LazyLoadService, LOADING_STRATEGY, RoutesService, InternalStore, DomInsertionService, CONTENT_STRATEGY, CoreModule, noop, ConfigStateService } from '@abp/ng.core';
9
+ import { getRoutePath, SubscriptionService, PROJECTION_STRATEGY, uuid, LocalizationService, getLocaleDirection, HttpErrorReporterService, RouterEvents, AuthService, RoutesService, InternalStore, DomInsertionService, CONTENT_STRATEGY, CoreModule, noop, ConfigStateService } from '@abp/ng.core';
10
10
  import { __rest } from 'tslib';
11
11
  import { startWith, map, debounceTime, filter, takeUntil, distinctUntilChanged, take, catchError, switchMap } from 'rxjs/operators';
12
- import { fromEvent, Subscription, combineLatest, timer, ReplaySubject, Subject, throwError, Observable, of, BehaviorSubject } from 'rxjs';
12
+ import { fromEvent, Subscription, combineLatest, timer, ReplaySubject, Subject, BehaviorSubject, throwError, Observable, of } from 'rxjs';
13
13
  import * as i3 from '@ng-bootstrap/ng-bootstrap';
14
14
  import { NgbInputDatepickerConfig, NgbTypeaheadConfig, NgbDateParserFormatter, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';
15
15
  import * as i1$2 from '@swimlane/ngx-datatable';
@@ -243,7 +243,7 @@ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
243
243
  (focus)="focus.next($event); abpFocus.next($event)"
244
244
  (blur)="blur.next($event); abpBlur.next($event)"
245
245
  >
246
- <i [ngClass]="icon" class="mr-1"></i><ng-content></ng-content>
246
+ <i [ngClass]="icon" class="me-1"></i><ng-content></ng-content>
247
247
  </button>
248
248
  `, isInline: true, directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }] });
249
249
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ButtonComponent, decorators: [{
@@ -261,7 +261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
261
261
  (focus)="focus.next($event); abpFocus.next($event)"
262
262
  (blur)="blur.next($event); abpBlur.next($event)"
263
263
  >
264
- <i [ngClass]="icon" class="mr-1"></i><ng-content></ng-content>
264
+ <i [ngClass]="icon" class="me-1"></i><ng-content></ng-content>
265
265
  </button>
266
266
  `,
267
267
  }]
@@ -382,7 +382,7 @@ class HttpErrorWrapperComponent {
382
382
  }
383
383
  }
384
384
  HttpErrorWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: HttpErrorWrapperComponent, deps: [{ token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Component });
385
- HttpErrorWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: HttpErrorWrapperComponent, selector: "abp-http-error-wrapper", providers: [SubscriptionService], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n id=\"abp-http-error-container\"\n class=\"error\"\n [style.backgroundColor]=\"backgroundColor\"\n>\n <button\n *ngIf=\"!hideCloseIcon\"\n id=\"abp-close-button\"\n type=\"button\"\n class=\"close mr-2\"\n (click)=\"destroy()\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n\n <div *ngIf=\"!customComponent\" class=\"row centered\">\n <div class=\"col-md-12\">\n <div class=\"error-template\">\n <h1>{{ statusText }} {{ title | abpLocalization }}</h1>\n <div class=\"error-details\">\n {{ details | abpLocalization }}\n </div>\n <div class=\"error-actions\">\n <a\n *ngIf=\"isHomeShow\"\n (click)=\"destroy()\"\n routerLink=\"/\"\n class=\"btn btn-primary btn-md mt-2\"\n ><span class=\"glyphicon glyphicon-home\"></span>\n {{ { key: '::Menu:Home', defaultValue: 'Home' } | abpLocalization }}\n </a>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".error{position:fixed;top:0;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "abpLocalization": i2.LocalizationPipe } });
385
+ HttpErrorWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: HttpErrorWrapperComponent, selector: "abp-http-error-wrapper", providers: [SubscriptionService], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n id=\"abp-http-error-container\"\n class=\"error\"\n [style.backgroundColor]=\"backgroundColor\"\n>\n <button\n *ngIf=\"!hideCloseIcon\"\n id=\"abp-close-button\"\n type=\"button\"\n class=\"close me-2\"\n (click)=\"destroy()\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n\n <div *ngIf=\"!customComponent\" class=\"row centered\">\n <div class=\"col-md-12\">\n <div class=\"error-template\">\n <h1>{{ statusText }} {{ title | abpLocalization }}</h1>\n <div class=\"error-details\">\n {{ details | abpLocalization }}\n </div>\n <div class=\"error-actions\">\n <a\n *ngIf=\"isHomeShow\"\n (click)=\"destroy()\"\n routerLink=\"/\"\n class=\"btn btn-primary btn-md mt-2\"\n ><span class=\"glyphicon glyphicon-home\"></span>\n {{ { key: '::Menu:Home', defaultValue: 'Home' } | abpLocalization }}\n </a>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".error{position:fixed;top:0;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "abpLocalization": i2.LocalizationPipe } });
386
386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: HttpErrorWrapperComponent, decorators: [{
387
387
  type: Component,
388
388
  args: [{
@@ -770,7 +770,7 @@ class ModalComponent {
770
770
  }
771
771
  }
772
772
  ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ModalComponent, deps: [{ token: ConfirmationService }, { token: i2.SubscriptionService }, { token: SUPPRESS_UNSAVED_CHANGES_WARNING, optional: true }, { token: i3.NgbModal }, { token: ModalRefService }], target: i0.ɵɵFactoryTarget.Component });
773
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ModalComponent, selector: "abp-modal", inputs: { visible: "visible", busy: "busy", options: "options", suppressUnsavedChangesWarning: "suppressUnsavedChangesWarning" }, outputs: { visibleChange: "visibleChange", init: "init", appear: "appear", disappear: "disappear" }, providers: [SubscriptionService], queries: [{ propertyName: "abpHeader", first: true, predicate: ["abpHeader"], descendants: true }, { propertyName: "abpBody", first: true, predicate: ["abpBody"], descendants: true }, { propertyName: "abpFooter", first: true, predicate: ["abpFooter"], descendants: true }, { propertyName: "abpSubmit", first: true, predicate: ButtonComponent, descendants: true, read: ButtonComponent }], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template #modalContent let-modal>\n <div id=\"abp-modal-header\" class=\"modal-header\">\n <ng-container *ngTemplateOutlet=\"abpHeader\"></ng-container>\n \u200B\n <button\n id=\"abp-modal-close-button\"\n type=\"button\"\n class=\"close\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div id=\"abp-modal-body\" class=\"modal-body\">\n <ng-container *ngTemplateOutlet=\"abpBody\"></ng-container>\n </div>\n <div *ngIf=\"abpFooter\" id=\"abp-modal-footer\" class=\"modal-footer\">\n <ng-container *ngTemplateOutlet=\"abpFooter\"></ng-container>\n </div>\n</ng-template>\n", styles: [".modal.show{display:block!important}.modal-backdrop{opacity:.8}.modal::-webkit-scrollbar{width:7px}.modal::-webkit-scrollbar-track{background:#ddd}.modal::-webkit-scrollbar-thumb{background:#8a8686}.modal-dialog{z-index:1050}\n"], directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
773
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.6", type: ModalComponent, selector: "abp-modal", inputs: { visible: "visible", busy: "busy", options: "options", suppressUnsavedChangesWarning: "suppressUnsavedChangesWarning" }, outputs: { visibleChange: "visibleChange", init: "init", appear: "appear", disappear: "disappear" }, providers: [SubscriptionService], queries: [{ propertyName: "abpHeader", first: true, predicate: ["abpHeader"], descendants: true }, { propertyName: "abpBody", first: true, predicate: ["abpBody"], descendants: true }, { propertyName: "abpFooter", first: true, predicate: ["abpFooter"], descendants: true }, { propertyName: "abpSubmit", first: true, predicate: ButtonComponent, descendants: true, read: ButtonComponent }], viewQueries: [{ propertyName: "modalContent", first: true, predicate: ["modalContent"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template #modalContent let-modal>\n <div id=\"abp-modal-header\" class=\"modal-header\">\n <ng-container *ngTemplateOutlet=\"abpHeader\"></ng-container>\n \u200B\n <button\n id=\"abp-modal-close-button\"\n type=\"button\"\n class=\"btn-sm btn-close\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\"\n ></button>\n </div>\n <div id=\"abp-modal-body\" class=\"modal-body\">\n <ng-container *ngTemplateOutlet=\"abpBody\"></ng-container>\n </div>\n <div *ngIf=\"abpFooter\" id=\"abp-modal-footer\" class=\"modal-footer\">\n <ng-container *ngTemplateOutlet=\"abpFooter\"></ng-container>\n </div>\n</ng-template>\n", styles: [".modal.show{display:block!important}.modal-backdrop{opacity:.8}.modal::-webkit-scrollbar{width:7px}.modal::-webkit-scrollbar-track{background:#ddd}.modal::-webkit-scrollbar-thumb{background:#8a8686}.modal-dialog{z-index:1050}\n"], directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
774
774
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ModalComponent, decorators: [{
775
775
  type: Component,
776
776
  args: [{
@@ -940,187 +940,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
940
940
  type: Input
941
941
  }] } });
942
942
 
943
- var styles = `
944
- .is-invalid .form-control {
945
- border-color: #dc3545;
946
- border-style: solid !important;
947
- padding-right: calc(1.5em + .75rem);
948
- 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);
949
- background-repeat: no-repeat;
950
- background-position: right calc(.375em + .1875rem) center;
951
- background-size: calc(.75em + .375rem) calc(.75em + .375rem);
952
- }
953
-
954
- .is-invalid .invalid-feedback,
955
- .is-invalid + * .invalid-feedback {
956
- display: block;
957
- }
958
-
959
- .data-tables-filter {
960
- text-align: right;
961
- }
962
-
963
- [dir=rtl] .data-tables-filter {
964
- text-align: left;
965
- }
966
-
967
- .pointer {
968
- cursor: pointer;
969
- }
970
-
971
- .navbar .dropdown-submenu a::after {
972
- transform: rotate(-90deg);
973
- position: absolute;
974
- right: 16px;
975
- top: 18px;
976
- }
977
-
978
- .navbar .dropdown-menu {
979
- min-width: 215px;
980
- }
981
-
982
- .datatable-scroll {
983
- margin-bottom: 5px !important;
984
- width: unset !important;
985
- }
986
-
987
- .ui-table-scrollable-body::-webkit-scrollbar {
988
- height: 5px !important;
989
- width: 5px !important;
990
- }
991
-
992
- .ui-table-scrollable-body::-webkit-scrollbar-track {
993
- background: #ddd;
994
- }
995
-
996
- .ui-table-scrollable-body::-webkit-scrollbar-thumb {
997
- background: #8a8686;
998
- }
999
-
1000
- .abp-ellipsis-inline {
1001
- display: inline-block;
1002
- overflow: hidden;
1003
- text-overflow: ellipsis;
1004
- white-space: nowrap;
1005
- }
1006
-
1007
- .abp-ellipsis {
1008
- overflow: hidden !important;
1009
- text-overflow: ellipsis;
1010
- white-space: nowrap;
1011
- }
1012
-
1013
- .ui-widget-overlay {
1014
- z-index: 1000;
1015
- }
1016
-
1017
- .color-white {
1018
- color: #FFF !important;
1019
- }
1020
-
1021
- .custom-checkbox > label {
1022
- cursor: pointer;
1023
- }
1024
-
1025
- /* <animations */
1026
-
1027
- .fade-in-top {
1028
- animation: fadeInTop 0.2s ease-in-out;
1029
- }
1030
-
1031
- .fade-out-top {
1032
- animation: fadeOutTop 0.2s ease-in-out;
1033
- }
1034
-
1035
- .abp-collapsed-height {
1036
- -moz-transition: max-height linear 0.35s;
1037
- -ms-transition: max-height linear 0.35s;
1038
- -o-transition: max-height linear 0.35s;
1039
- -webkit-transition: max-height linear 0.35s;
1040
- overflow:hidden;
1041
- transition:max-height 0.35s linear;
1042
- height:auto;
1043
- max-height: 0;
1044
- }
1045
-
1046
- .abp-mh-25 {
1047
- max-height: 25vh;
1048
- }
1049
-
1050
- .abp-mh-50 {
1051
- transition:max-height 0.65s linear;
1052
- max-height: 50vh;
1053
- }
1054
-
1055
- .abp-mh-75 {
1056
- transition:max-height 0.85s linear;
1057
- max-height: 75vh;
1058
- }
1059
-
1060
- .abp-mh-100 {
1061
- transition:max-height 1s linear;
1062
- max-height: 100vh;
1063
- }
1064
-
1065
- [class^="sorting"] {
1066
- opacity: .3;
1067
- cursor: pointer;
1068
- }
1069
- [class^="sorting"]:before {
1070
- right: 0.5rem;
1071
- content: "↑";
1072
- }
1073
- [class^="sorting"]:after {
1074
- right: 0.5rem;
1075
- content: "↓";
1076
- }
1077
-
1078
- .sorting_desc {
1079
- opacity: 1;
1080
- }
1081
- .sorting_desc:before {
1082
- opacity: .3;
1083
- }
1084
-
1085
- .sorting_asc {
1086
- opacity: 1;
1087
- }
1088
- .sorting_asc:after {
1089
- opacity: .3;
1090
- }
1091
- .ngx-datatable.material {
1092
- box-shadow: none;
1093
- }
1094
- ngb-typeahead-window, ngb-typeahead-window.dropdown-menu {
1095
- max-height: 25em;
1096
- overflow-y: scroll !important;
1097
- z-index: 1050;
1098
- }
1099
-
1100
- @keyframes fadeInTop {
1101
- from {
1102
- transform: translateY(-5px);
1103
- opacity: 0;
1104
- }
1105
-
1106
- to {
1107
- transform: translateY(0px);
1108
- opacity: 1;
1109
- }
1110
- }
1111
-
1112
- @keyframes fadeOutTop {
1113
- to {
1114
- transform: translateY(-5px);
1115
- opacity: 0;
1116
- }
1117
- }
1118
-
1119
- /* </animations */
1120
-
1121
- `;
1122
- const BOOTSTRAP = 'bootstrap-{{dir}}.min.css';
1123
-
1124
943
  const DEFAULT_VALIDATION_BLUEPRINTS = {
1125
944
  creditCard: 'AbpValidation::ThisFieldIsNotAValidCreditCardNumber.',
1126
945
  email: 'AbpValidation::ThisFieldIsNotAValidEmailAddress.',
@@ -1440,6 +1259,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
1440
1259
  type: Input
1441
1260
  }] } });
1442
1261
 
1262
+ class DocumentDirHandlerService {
1263
+ constructor(injector) {
1264
+ this.injector = injector;
1265
+ this.dir = new BehaviorSubject('ltr');
1266
+ this.dir$ = this.dir.asObservable();
1267
+ this.listenToLanguageChanges();
1268
+ }
1269
+ listenToLanguageChanges() {
1270
+ const l10n = this.injector.get(LocalizationService);
1271
+ // will always listen, no need to unsubscribe
1272
+ l10n.languageChange$
1273
+ .pipe(startWith(l10n.currentLang), map(locale => getLocaleDirection(locale)))
1274
+ .subscribe(dir => {
1275
+ this.dir.next(dir);
1276
+ this.setBodyDir(dir);
1277
+ });
1278
+ }
1279
+ setBodyDir(dir) {
1280
+ document.body.dir = dir;
1281
+ document.dir = dir;
1282
+ }
1283
+ }
1284
+ DocumentDirHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: DocumentDirHandlerService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1285
+ DocumentDirHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: DocumentDirHandlerService });
1286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: DocumentDirHandlerService, decorators: [{
1287
+ type: Injectable
1288
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1289
+
1443
1290
  function httpErrorConfigFactory(config = {}) {
1444
1291
  if (config.errorScreen && config.errorScreen.component && !config.errorScreen.forWhichErrors) {
1445
1292
  config.errorScreen.forWhichErrors = [401, 403, 404, 500];
@@ -1720,91 +1567,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
1720
1567
  args: [{ providedIn: 'root' }]
1721
1568
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1722
1569
 
1723
- const LAZY_STYLES = new InjectionToken('LAZY_STYLES');
1724
-
1725
- class LazyStyleHandler {
1726
- constructor(injector) {
1727
- this._dir = 'ltr';
1728
- this.loaded = new Map();
1729
- this.setStyles(injector);
1730
- this.setLazyLoad(injector);
1731
- this.listenToLanguageChanges(injector);
1732
- }
1733
- set dir(dir) {
1734
- if (dir === this._dir)
1735
- return;
1736
- this.switchCSS(dir);
1737
- this.setBodyDir(dir);
1738
- this._dir = dir;
1739
- }
1740
- get dir() {
1741
- return this._dir;
1742
- }
1743
- getHrefFromLink(link) {
1744
- if (!link)
1745
- return '';
1746
- const a = document.createElement('a');
1747
- a.href = link.href;
1748
- return a.pathname.replace(/^\//, '');
1749
- }
1750
- getLoadedBootstrap() {
1751
- const href = createLazyStyleHref(BOOTSTRAP, this.dir);
1752
- const selector = `[href*="${href.replace(/\.css$/, '')}"]`;
1753
- const link = document.querySelector(selector);
1754
- return { href, link };
1755
- }
1756
- listenToLanguageChanges(injector) {
1757
- const l10n = injector.get(LocalizationService);
1758
- // will always listen, no need to unsubscribe
1759
- l10n.languageChange$.pipe(startWith(l10n.currentLang)).subscribe(locale => {
1760
- this.dir = getLocaleDirection(locale);
1761
- });
1762
- }
1763
- setBodyDir(dir) {
1764
- document.body.dir = dir;
1765
- }
1766
- setLazyLoad(injector) {
1767
- this.lazyLoad = injector.get(LazyLoadService);
1768
- const { href, link } = this.getLoadedBootstrap();
1769
- this.lazyLoad.loaded.set(href, link);
1770
- }
1771
- setStyles(injector) {
1772
- this.styles = injector.get(LAZY_STYLES, [BOOTSTRAP]);
1773
- }
1774
- switchCSS(dir) {
1775
- this.styles.forEach(style => {
1776
- const oldHref = createLazyStyleHref(style, this.dir);
1777
- const newHref = createLazyStyleHref(style, dir);
1778
- const link = this.loaded.get(newHref);
1779
- const href = this.getHrefFromLink(link) || newHref;
1780
- const strategy = LOADING_STRATEGY.PrependAnonymousStyleToHead(href);
1781
- this.lazyLoad.load(strategy).subscribe(() => {
1782
- const oldLink = this.lazyLoad.loaded.get(oldHref);
1783
- this.loaded.delete(newHref);
1784
- this.loaded.set(oldHref, oldLink);
1785
- const newLink = this.lazyLoad.loaded.get(href);
1786
- this.lazyLoad.loaded.delete(href);
1787
- this.lazyLoad.loaded.set(newHref, newLink);
1788
- this.lazyLoad.remove(oldHref);
1789
- });
1790
- });
1791
- }
1792
- }
1793
- LazyStyleHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LazyStyleHandler, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
1794
- LazyStyleHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LazyStyleHandler, providedIn: 'root' });
1795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: LazyStyleHandler, decorators: [{
1796
- type: Injectable,
1797
- args: [{
1798
- providedIn: 'root',
1799
- }]
1800
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
1801
- function createLazyStyleHref(style, dir) {
1802
- return style.replace(/{{\s*dir\s*}}/g, dir);
1803
- }
1804
- function initLazyStyleHandler(injector) {
1805
- return () => new LazyStyleHandler(injector);
1806
- }
1807
-
1808
1570
  class NavItem {
1809
1571
  constructor(props) {
1810
1572
  props = Object.assign(Object.assign({}, props), { visible: props.visible || (() => true) });
@@ -2010,6 +1772,188 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
2010
1772
  }]
2011
1773
  }], ctorParameters: function () { return [{ type: i2.ContentProjectionService }]; } });
2012
1774
 
1775
+ var styles = `
1776
+ .is-invalid .form-control {
1777
+ border-color: #dc3545;
1778
+ border-style: solid !important;
1779
+ padding-right: calc(1.5em + .75rem);
1780
+ 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);
1781
+ background-repeat: no-repeat;
1782
+ background-position: right calc(.375em + .1875rem) center;
1783
+ background-size: calc(.75em + .375rem) calc(.75em + .375rem);
1784
+ }
1785
+
1786
+ .is-invalid .invalid-feedback,
1787
+ .is-invalid + * .invalid-feedback {
1788
+ display: block;
1789
+ }
1790
+
1791
+ .data-tables-filter {
1792
+ text-align: right;
1793
+ }
1794
+
1795
+ [dir=rtl] .data-tables-filter {
1796
+ text-align: left;
1797
+ }
1798
+
1799
+ .pointer {
1800
+ cursor: pointer;
1801
+ }
1802
+
1803
+ .navbar .dropdown-submenu a::after {
1804
+ transform: rotate(-90deg);
1805
+ position: absolute;
1806
+ right: 16px;
1807
+ top: 18px;
1808
+ }
1809
+
1810
+ .navbar .dropdown-menu {
1811
+ min-width: 215px;
1812
+ }
1813
+
1814
+ .datatable-scroll {
1815
+ margin-bottom: 5px !important;
1816
+ width: unset !important;
1817
+ }
1818
+
1819
+ .ui-table-scrollable-body::-webkit-scrollbar {
1820
+ height: 5px !important;
1821
+ width: 5px !important;
1822
+ }
1823
+
1824
+ .ui-table-scrollable-body::-webkit-scrollbar-track {
1825
+ background: #ddd;
1826
+ }
1827
+
1828
+ .ui-table-scrollable-body::-webkit-scrollbar-thumb {
1829
+ background: #8a8686;
1830
+ }
1831
+
1832
+ .abp-ellipsis-inline {
1833
+ display: inline-block;
1834
+ overflow: hidden;
1835
+ text-overflow: ellipsis;
1836
+ white-space: nowrap;
1837
+ }
1838
+
1839
+ .abp-ellipsis {
1840
+ overflow: hidden !important;
1841
+ text-overflow: ellipsis;
1842
+ white-space: nowrap;
1843
+ }
1844
+
1845
+ .ui-widget-overlay {
1846
+ z-index: 1000;
1847
+ }
1848
+
1849
+ .color-white {
1850
+ color: #FFF !important;
1851
+ }
1852
+
1853
+ .custom-checkbox > label {
1854
+ cursor: pointer;
1855
+ }
1856
+
1857
+ /* <animations */
1858
+
1859
+ .fade-in-top {
1860
+ animation: fadeInTop 0.2s ease-in-out;
1861
+ }
1862
+
1863
+ .fade-out-top {
1864
+ animation: fadeOutTop 0.2s ease-in-out;
1865
+ }
1866
+
1867
+ .abp-collapsed-height {
1868
+ -moz-transition: max-height linear 0.35s;
1869
+ -ms-transition: max-height linear 0.35s;
1870
+ -o-transition: max-height linear 0.35s;
1871
+ -webkit-transition: max-height linear 0.35s;
1872
+ overflow:hidden;
1873
+ transition:max-height 0.35s linear;
1874
+ height:auto;
1875
+ max-height: 0;
1876
+ }
1877
+
1878
+ .abp-mh-25 {
1879
+ max-height: 25vh;
1880
+ }
1881
+
1882
+ .abp-mh-50 {
1883
+ transition:max-height 0.65s linear;
1884
+ max-height: 50vh;
1885
+ }
1886
+
1887
+ .abp-mh-75 {
1888
+ transition:max-height 0.85s linear;
1889
+ max-height: 75vh;
1890
+ }
1891
+
1892
+ .abp-mh-100 {
1893
+ transition:max-height 1s linear;
1894
+ max-height: 100vh;
1895
+ }
1896
+
1897
+ [class^="sorting"] {
1898
+ opacity: .3;
1899
+ cursor: pointer;
1900
+ }
1901
+ [class^="sorting"]:before {
1902
+ right: 0.5rem;
1903
+ content: "↑";
1904
+ }
1905
+ [class^="sorting"]:after {
1906
+ right: 0.5rem;
1907
+ content: "↓";
1908
+ }
1909
+
1910
+ .sorting_desc {
1911
+ opacity: 1;
1912
+ }
1913
+ .sorting_desc:before {
1914
+ opacity: .3;
1915
+ }
1916
+
1917
+ .sorting_asc {
1918
+ opacity: 1;
1919
+ }
1920
+ .sorting_asc:after {
1921
+ opacity: .3;
1922
+ }
1923
+ .ngx-datatable.material {
1924
+ box-shadow: none;
1925
+ }
1926
+ ngb-typeahead-window, ngb-typeahead-window.dropdown-menu {
1927
+ max-height: 25em;
1928
+ overflow-y: scroll !important;
1929
+ z-index: 1050;
1930
+ }
1931
+
1932
+ @keyframes fadeInTop {
1933
+ from {
1934
+ transform: translateY(-5px);
1935
+ opacity: 0;
1936
+ }
1937
+
1938
+ to {
1939
+ transform: translateY(0px);
1940
+ opacity: 1;
1941
+ }
1942
+ }
1943
+
1944
+ @keyframes fadeOutTop {
1945
+ to {
1946
+ transform: translateY(-5px);
1947
+ opacity: 0;
1948
+ }
1949
+ }
1950
+
1951
+ /* </animations */
1952
+ .ngb-dp-body {
1953
+ z-index: 1055 !important;
1954
+ }
1955
+ `;
1956
+
2013
1957
  const THEME_SHARED_APPEND_CONTENT = new InjectionToken('THEME_SHARED_APPEND_CONTENT', {
2014
1958
  providedIn: 'root',
2015
1959
  factory: () => {
@@ -2163,12 +2107,6 @@ class ThemeSharedModule {
2163
2107
  deps: [THEME_SHARED_APPEND_CONTENT],
2164
2108
  useFactory: noop,
2165
2109
  },
2166
- {
2167
- provide: APP_INITIALIZER,
2168
- multi: true,
2169
- deps: [Injector],
2170
- useFactory: initLazyStyleHandler,
2171
- },
2172
2110
  { provide: HTTP_ERROR_CONFIG, useValue: httpErrorConfig },
2173
2111
  {
2174
2112
  provide: 'HTTP_ERROR_CONFIG',
@@ -2189,6 +2127,13 @@ class ThemeSharedModule {
2189
2127
  provide: VALIDATION_VALIDATE_ON_SUBMIT,
2190
2128
  useValue: validation.validateOnSubmit,
2191
2129
  },
2130
+ DocumentDirHandlerService,
2131
+ {
2132
+ provide: APP_INITIALIZER,
2133
+ useFactory: noop,
2134
+ multi: true,
2135
+ deps: [DocumentDirHandlerService],
2136
+ },
2192
2137
  ],
2193
2138
  };
2194
2139
  }
@@ -2242,5 +2187,5 @@ function getRuleFn(injector) {
2242
2187
  * Generated bundle index. Do not edit.
2243
2188
  */
2244
2189
 
2245
- export { BOOTSTRAP, BaseThemeSharedModule, BreadcrumbComponent, BreadcrumbItemsComponent, ButtonComponent, Confirmation, ConfirmationComponent, ConfirmationService, DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES, DEFAULT_VALIDATION_BLUEPRINTS, DateParserFormatter, EllipsisDirective, EllipsisModule, ErrorHandler, HTTP_ERROR_CONFIG, HTTP_ERROR_HANDLER, HttpErrorWrapperComponent, LAZY_STYLES, LazyStyleHandler, LoaderBarComponent, LoadingComponent, LoadingDirective, ModalCloseDirective, ModalComponent, ModalRefService, NGX_DATATABLE_MESSAGES, NG_BOOTSTRAP_CONFIG_PROVIDERS, NavItem, NavItemsService, NgxDatatableDefaultDirective, NgxDatatableListDirective, PageAlertService, SUPPRESS_UNSAVED_CHANGES_WARNING, THEME_SHARED_APPEND_CONTENT, THEME_SHARED_ROUTE_PROVIDERS, ThemeSharedModule, ToastComponent, ToastContainerComponent, ToasterService, bounceIn, collapse, collapseLinearWithMargin, collapseWithMargin, collapseX, collapseY, collapseYWithMargin, configureNgBootstrap, configureRoutes, createLazyStyleHref, defaultNgxDatatableMessages, dialogAnimation, expandX, expandY, expandYWithMargin, fadeAnimation, fadeIn, fadeInDown, fadeInLeft, fadeInRight, fadeInUp, fadeOut, fadeOutDown, fadeOutLeft, fadeOutRight, fadeOutUp, getPasswordValidators, httpErrorConfigFactory, initLazyStyleHandler, slideFromBottom, toastInOut };
2190
+ export { BaseThemeSharedModule, BreadcrumbComponent, BreadcrumbItemsComponent, ButtonComponent, Confirmation, ConfirmationComponent, ConfirmationService, DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES, DEFAULT_VALIDATION_BLUEPRINTS, DateParserFormatter, DocumentDirHandlerService, EllipsisDirective, EllipsisModule, ErrorHandler, HTTP_ERROR_CONFIG, HTTP_ERROR_HANDLER, HttpErrorWrapperComponent, LoaderBarComponent, LoadingComponent, LoadingDirective, ModalCloseDirective, ModalComponent, ModalRefService, NGX_DATATABLE_MESSAGES, NG_BOOTSTRAP_CONFIG_PROVIDERS, NavItem, NavItemsService, NgxDatatableDefaultDirective, NgxDatatableListDirective, PageAlertService, SUPPRESS_UNSAVED_CHANGES_WARNING, THEME_SHARED_APPEND_CONTENT, THEME_SHARED_ROUTE_PROVIDERS, ThemeSharedModule, ToastComponent, ToastContainerComponent, ToasterService, bounceIn, collapse, collapseLinearWithMargin, collapseWithMargin, collapseX, collapseY, collapseYWithMargin, configureNgBootstrap, configureRoutes, defaultNgxDatatableMessages, dialogAnimation, expandX, expandY, expandYWithMargin, fadeAnimation, fadeIn, fadeInDown, fadeInLeft, fadeInRight, fadeInUp, fadeOut, fadeOutDown, fadeOutLeft, fadeOutRight, fadeOutUp, getPasswordValidators, httpErrorConfigFactory, slideFromBottom, toastInOut };
2246
2191
  //# sourceMappingURL=abp-ng.theme.shared.js.map