@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.
- package/bundles/abp-ng.theme.shared-extensions.umd.js +4 -4
- package/bundles/abp-ng.theme.shared-extensions.umd.js.map +1 -1
- package/bundles/abp-ng.theme.shared.umd.js +44 -110
- package/bundles/abp-ng.theme.shared.umd.js.map +1 -1
- package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js +1 -1
- package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js.map +1 -1
- package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js +1 -1
- package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js.map +1 -1
- package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js +1 -1
- package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js.map +1 -1
- package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js +1 -1
- package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js.map +1 -1
- package/esm2015/lib/components/button/button.component.js +2 -2
- package/esm2015/lib/components/button/button.component.js.map +1 -1
- package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js +1 -1
- package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js.map +1 -1
- package/esm2015/lib/components/modal/modal.component.js +1 -1
- package/esm2015/lib/components/modal/modal.component.js.map +1 -1
- package/esm2015/lib/constants/styles.js +3 -2
- package/esm2015/lib/constants/styles.js.map +1 -1
- package/esm2015/lib/handlers/document-dir.handler.js +33 -0
- package/esm2015/lib/handlers/document-dir.handler.js.map +1 -0
- package/esm2015/lib/handlers/index.js +1 -1
- package/esm2015/lib/handlers/index.js.map +1 -1
- package/esm2015/lib/theme-shared.module.js +10 -9
- package/esm2015/lib/theme-shared.module.js.map +1 -1
- package/esm2015/lib/tokens/index.js +0 -1
- package/esm2015/lib/tokens/index.js.map +1 -1
- package/esm2015/public-api.js +0 -1
- package/esm2015/public-api.js.map +1 -1
- package/fesm2015/abp-ng.theme.shared-extensions.js +4 -4
- package/fesm2015/abp-ng.theme.shared-extensions.js.map +1 -1
- package/fesm2015/abp-ng.theme.shared.js +225 -280
- package/fesm2015/abp-ng.theme.shared.js.map +1 -1
- package/lib/constants/styles.d.ts +1 -2
- package/lib/handlers/document-dir.handler.d.ts +13 -0
- package/lib/handlers/index.d.ts +1 -1
- package/lib/tokens/index.d.ts +0 -1
- package/package.json +4 -4
- package/public-api.d.ts +0 -1
- package/esm2015/lib/handlers/lazy-style.handler.js +0 -89
- package/esm2015/lib/handlers/lazy-style.handler.js.map +0 -1
- package/esm2015/lib/tokens/lazy-styles.token.js +0 -3
- package/esm2015/lib/tokens/lazy-styles.token.js.map +0 -1
- package/lib/handlers/lazy-style.handler.d.ts +0 -23
- package/lib/tokens/lazy-styles.token.d.ts +0 -2
- package/styles/bootstrap-rtl.min.css +0 -7
|
@@ -39,7 +39,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
39
39
|
(ngModelChange)="setDate($event)"
|
|
40
40
|
[meridian]="meridian"
|
|
41
41
|
></ngb-timepicker>
|
|
42
|
-
`, isInline: true, components: [{ type: i1.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }], directives: [{ type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["disabled", "autoClose", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "
|
|
42
|
+
`, isInline: true, components: [{ type: i1.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }], directives: [{ type: i1.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.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.ValidationDirective, selector: "[formControl],[formControlName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }], viewProviders: [
|
|
43
43
|
{
|
|
44
44
|
provide: ControlContainer,
|
|
45
45
|
useFactory: selfFactory,
|
package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-picker.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/date-time-picker/date-time-picker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;;;;;AAyCvD,MAAM,OAAO,uBAAuB;IAOlC,YAA4B,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAL3C,aAAQ,GAAG,KAAK,CAAC;IAK6B,CAAC;IAExD,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;;oHAfU,uBAAuB;wGAAvB,uBAAuB,kJAIvB,kBAAkB,uEAClB,aAAa,iFAzCd;;;;;;;;;;;;;;;;;;GAkBT,
|
|
1
|
+
{"version":3,"file":"date-time-picker.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/date-time-picker/date-time-picker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;;;;;AAyCvD,MAAM,OAAO,uBAAuB;IAOlC,YAA4B,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAL3C,aAAQ,GAAG,KAAK,CAAC;IAK6B,CAAC;IAExD,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;;oHAfU,uBAAuB;wGAAvB,uBAAuB,kJAIvB,kBAAkB,uEAClB,aAAa,iFAzCd;;;;;;;;;;;;;;;;;;GAkBT,21CAEc;QACb;YACE,OAAO,EAAE,gBAAgB;YACzB,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;SAC3D;QACD;YACE,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,eAAe;SAC1B;QACD;YACE,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,eAAe;SAC1B;KACF;2FAEU,uBAAuB;kBAvCnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ,EAAE,sBAAsB;oBAChC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;GAkBT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE;wBACb;4BACE,OAAO,EAAE,gBAAgB;4BACzB,UAAU,EAAE,WAAW;4BACvB,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;yBAC3D;wBACD;4BACE,OAAO,EAAE,cAAc;4BACvB,QAAQ,EAAE,eAAe;yBAC1B;wBACD;4BACE,OAAO,EAAE,cAAc;4BACvB,QAAQ,EAAE,eAAe;yBAC1B;qBACF;iBACF;wGAEU,IAAI;sBAAZ,KAAK;gBACG,QAAQ;sBAAhB,KAAK;gBAEyB,IAAI;sBAAlC,SAAS;uBAAC,kBAAkB;gBACH,IAAI;sBAA7B,SAAS;uBAAC,aAAa","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n Optional,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer } from '@angular/forms';\nimport {\n NgbDateAdapter,\n NgbInputDatepicker,\n NgbTimeAdapter,\n NgbTimepicker,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { DateTimeAdapter } from '../../adapters/date-time.adapter';\nimport { FormProp } from '../../models/form-props';\nimport { selfFactory } from '../../utils/factory.util';\n\n@Component({\n exportAs: 'abpDateTimePicker',\n selector: 'abp-date-time-picker',\n template: `\n <input\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n (ngModelChange)=\"setTime($event)\"\n (click)=\"datepicker.open()\"\n (keyup.space)=\"datepicker.open()\"\n ngbDatepicker\n #datepicker=\"ngbDatepicker\"\n type=\"text\"\n class=\"form-control\"\n />\n <ngb-timepicker\n #timepicker\n [formControlName]=\"prop.name\"\n (ngModelChange)=\"setDate($event)\"\n [meridian]=\"meridian\"\n ></ngb-timepicker>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n {\n provide: NgbDateAdapter,\n useClass: DateTimeAdapter,\n },\n {\n provide: NgbTimeAdapter,\n useClass: DateTimeAdapter,\n },\n ],\n})\nexport class DateTimePickerComponent {\n @Input() prop: FormProp;\n @Input() meridian = false;\n\n @ViewChild(NgbInputDatepicker) date: NgbInputDatepicker;\n @ViewChild(NgbTimepicker) time: NgbTimepicker;\n\n constructor(public readonly cdRef: ChangeDetectorRef) {}\n\n setDate(datestr: string) {\n this.date.writeValue(datestr);\n }\n\n setTime(datestr: string) {\n this.time.writeValue(datestr);\n }\n}\n"]}
|
|
@@ -123,7 +123,7 @@ export class ExtensibleFormPropComponent {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
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.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
-
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=\"
|
|
126
|
+
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)\">\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=\"form-check\" validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n type=\"checkbox\"\n class=\"form-check-input\"\n />\n <ng-template\n [ngTemplateOutlet]=\"label\"\n [ngTemplateOutletContext]=\"{ $implicit: 'form-check-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=\"form-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=\"form-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 || 'form-label'\"\n >{{ prop.displayName | abpLocalization }} {{ asterisk }}</label\n >\n</ng-template>\n", components: [{ type: i3.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"] }, { type: i4.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.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ValidationDirective, selector: "[formControl],[formControlName]", inputs: ["blueprints", "errorTemplate", "invalidClasses", "mapErrorsFn", "skipValidation", "targetSelector", "validateOnSubmit"] }, { type: i7.DisabledDirective, selector: "[abpDisabled]", inputs: ["abpDisabled"] }, { type: i6.ValidationTargetDirective, selector: "[validationTarget]" }, { type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2.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.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { type: i6.ValidationStyleDirective, selector: "[validationStyle]" }, { type: i3.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "placement", "container", "editable", "focusFirst", "showHint", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.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: [
|
|
127
127
|
{
|
|
128
128
|
provide: ControlContainer,
|
|
129
129
|
useFactory: selfFactory,
|
package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensible-form-prop.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ABP, AbpValidators, ConfigStateService, TrackByService } from '@abp/ng.core';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n Optional,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { NgbDateAdapter, NgbTimeAdapter } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\nimport { DateAdapter } from '../../adapters/date.adapter';\nimport { TimeAdapter } from '../../adapters/time.adapter';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\nimport { ePropType } from '../../enums/props.enum';\nimport { FormProp } from '../../models/form-props';\nimport { PropData } from '../../models/props';\nimport { selfFactory } from '../../utils/factory.util';\nimport { addTypeaheadTextSuffix } from '../../utils/typeahead.util';\n\n@Component({\n selector: 'abp-extensible-form-prop',\n templateUrl: './extensible-form-prop.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n { provide: NgbDateAdapter, useClass: DateAdapter },\n { provide: NgbTimeAdapter, useClass: TimeAdapter },\n ],\n})\nexport class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {\n @Input() data: PropData;\n\n @Input() prop: FormProp;\n\n @Input() first: boolean;\n\n @ViewChild('field') private fieldRef: ElementRef<HTMLElement>;\n\n asterisk = '';\n\n options$: Observable<ABP.Option<any>[]> = of([]);\n\n validators: ValidatorFn[] = [];\n\n readonly: boolean;\n\n disabled: boolean;\n\n private readonly form: FormGroup;\n\n typeaheadModel: any;\n\n setTypeaheadValue(selectedOption: ABP.Option<string>) {\n this.typeaheadModel = selectedOption || { key: null, value: null };\n const { key, value } = this.typeaheadModel;\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (valueControl.value && !value) valueControl.markAsDirty();\n keyControl.setValue(key);\n valueControl.setValue(value);\n }\n\n search = (text$: Observable<string>) =>\n text$\n ? text$.pipe(\n debounceTime(300),\n distinctUntilChanged(),\n switchMap(text => this.prop.options(this.data, text)),\n )\n : of([]);\n\n typeaheadFormatter = (option: ABP.Option<any>) => option.key;\n\n get meridian() {\n return (\n this.configState.getDeep('localization.currentCulture.dateTimeFormat.shortTimePattern') || ''\n ).includes('tt');\n }\n\n get isInvalid() {\n const control = this.form.get(this.prop.name);\n return control.touched && control.invalid;\n }\n\n constructor(\n public readonly cdRef: ChangeDetectorRef,\n public readonly track: TrackByService,\n protected configState: ConfigStateService,\n groupDirective: FormGroupDirective,\n ) {\n this.form = groupDirective.form;\n }\n\n private getTypeaheadControls() {\n const { name } = this.prop;\n const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`;\n const keyControl =\n this.form.get(addTypeaheadTextSuffix(extraPropName)) ||\n this.form.get(addTypeaheadTextSuffix(name));\n const valueControl = this.form.get(extraPropName) || this.form.get(name);\n return [keyControl, valueControl];\n }\n\n private setAsterisk() {\n this.asterisk = this.validators.some(isRequired) ? '*' : '';\n }\n\n ngAfterViewInit() {\n if (this.first && this.fieldRef) {\n this.fieldRef.nativeElement.focus();\n }\n }\n\n getComponent(prop: FormProp): string {\n switch (prop.type) {\n case ePropType.Boolean:\n return 'checkbox';\n case ePropType.Date:\n return 'date';\n case ePropType.DateTime:\n return 'dateTime';\n case ePropType.Hidden:\n return 'hidden';\n case ePropType.MultiSelect:\n return 'multiselect';\n case ePropType.Text:\n return 'textarea';\n case ePropType.Time:\n return 'time';\n case ePropType.Typeahead:\n return 'typeahead';\n default:\n return prop.options ? 'select' : 'input';\n }\n }\n\n getType(prop: FormProp): string {\n switch (prop.type) {\n case ePropType.Date:\n case ePropType.String:\n return 'text';\n case ePropType.Boolean:\n return 'checkbox';\n case ePropType.Number:\n return 'number';\n case ePropType.Email:\n return 'email';\n case ePropType.Password:\n return 'password';\n default:\n return 'hidden';\n }\n }\n\n ngOnChanges({ prop }: SimpleChanges) {\n const currentProp = prop?.currentValue;\n const { options, readonly, disabled, validators } = currentProp || {};\n\n if (options) this.options$ = options(this.data);\n if (readonly) this.readonly = readonly(this.data);\n if (disabled) this.disabled = disabled(this.data);\n if (validators) {\n this.validators = validators(this.data);\n this.setAsterisk();\n }\n\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (keyControl && valueControl)\n this.typeaheadModel = { key: keyControl.value, value: valueControl.value };\n }\n}\n\nfunction isRequired(validator: ValidatorFn) {\n return validator === Validators.required || validator === AbpValidators.required;\n}\n","<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"]}
|
|
1
|
+
{"version":3,"file":"extensible-form-prop.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ABP, AbpValidators, ConfigStateService, TrackByService } from '@abp/ng.core';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n Optional,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlContainer,\n FormGroup,\n FormGroupDirective,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { NgbDateAdapter, NgbTimeAdapter } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\nimport { DateAdapter } from '../../adapters/date.adapter';\nimport { TimeAdapter } from '../../adapters/time.adapter';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\nimport { ePropType } from '../../enums/props.enum';\nimport { FormProp } from '../../models/form-props';\nimport { PropData } from '../../models/props';\nimport { selfFactory } from '../../utils/factory.util';\nimport { addTypeaheadTextSuffix } from '../../utils/typeahead.util';\n\n@Component({\n selector: 'abp-extensible-form-prop',\n templateUrl: './extensible-form-prop.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n { provide: NgbDateAdapter, useClass: DateAdapter },\n { provide: NgbTimeAdapter, useClass: TimeAdapter },\n ],\n})\nexport class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {\n @Input() data: PropData;\n\n @Input() prop: FormProp;\n\n @Input() first: boolean;\n\n @ViewChild('field') private fieldRef: ElementRef<HTMLElement>;\n\n asterisk = '';\n\n options$: Observable<ABP.Option<any>[]> = of([]);\n\n validators: ValidatorFn[] = [];\n\n readonly: boolean;\n\n disabled: boolean;\n\n private readonly form: FormGroup;\n\n typeaheadModel: any;\n\n setTypeaheadValue(selectedOption: ABP.Option<string>) {\n this.typeaheadModel = selectedOption || { key: null, value: null };\n const { key, value } = this.typeaheadModel;\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (valueControl.value && !value) valueControl.markAsDirty();\n keyControl.setValue(key);\n valueControl.setValue(value);\n }\n\n search = (text$: Observable<string>) =>\n text$\n ? text$.pipe(\n debounceTime(300),\n distinctUntilChanged(),\n switchMap(text => this.prop.options(this.data, text)),\n )\n : of([]);\n\n typeaheadFormatter = (option: ABP.Option<any>) => option.key;\n\n get meridian() {\n return (\n this.configState.getDeep('localization.currentCulture.dateTimeFormat.shortTimePattern') || ''\n ).includes('tt');\n }\n\n get isInvalid() {\n const control = this.form.get(this.prop.name);\n return control.touched && control.invalid;\n }\n\n constructor(\n public readonly cdRef: ChangeDetectorRef,\n public readonly track: TrackByService,\n protected configState: ConfigStateService,\n groupDirective: FormGroupDirective,\n ) {\n this.form = groupDirective.form;\n }\n\n private getTypeaheadControls() {\n const { name } = this.prop;\n const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`;\n const keyControl =\n this.form.get(addTypeaheadTextSuffix(extraPropName)) ||\n this.form.get(addTypeaheadTextSuffix(name));\n const valueControl = this.form.get(extraPropName) || this.form.get(name);\n return [keyControl, valueControl];\n }\n\n private setAsterisk() {\n this.asterisk = this.validators.some(isRequired) ? '*' : '';\n }\n\n ngAfterViewInit() {\n if (this.first && this.fieldRef) {\n this.fieldRef.nativeElement.focus();\n }\n }\n\n getComponent(prop: FormProp): string {\n switch (prop.type) {\n case ePropType.Boolean:\n return 'checkbox';\n case ePropType.Date:\n return 'date';\n case ePropType.DateTime:\n return 'dateTime';\n case ePropType.Hidden:\n return 'hidden';\n case ePropType.MultiSelect:\n return 'multiselect';\n case ePropType.Text:\n return 'textarea';\n case ePropType.Time:\n return 'time';\n case ePropType.Typeahead:\n return 'typeahead';\n default:\n return prop.options ? 'select' : 'input';\n }\n }\n\n getType(prop: FormProp): string {\n switch (prop.type) {\n case ePropType.Date:\n case ePropType.String:\n return 'text';\n case ePropType.Boolean:\n return 'checkbox';\n case ePropType.Number:\n return 'number';\n case ePropType.Email:\n return 'email';\n case ePropType.Password:\n return 'password';\n default:\n return 'hidden';\n }\n }\n\n ngOnChanges({ prop }: SimpleChanges) {\n const currentProp = prop?.currentValue;\n const { options, readonly, disabled, validators } = currentProp || {};\n\n if (options) this.options$ = options(this.data);\n if (readonly) this.readonly = readonly(this.data);\n if (disabled) this.disabled = disabled(this.data);\n if (validators) {\n this.validators = validators(this.data);\n this.setAsterisk();\n }\n\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (keyControl && valueControl)\n this.typeaheadModel = { key: keyControl.value, value: valueControl.value };\n }\n}\n\nfunction isRequired(validator: ValidatorFn) {\n return validator === Validators.required || validator === AbpValidators.required;\n}\n","<div class=\"mb-3 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=\"form-check\" validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n type=\"checkbox\"\n class=\"form-check-input\"\n />\n <ng-template\n [ngTemplateOutlet]=\"label\"\n [ngTemplateOutletContext]=\"{ $implicit: 'form-check-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=\"form-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=\"form-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 || 'form-label'\"\n >{{ prop.displayName | abpLocalization }} {{ asterisk }}</label\n >\n</ng-template>\n"]}
|
|
@@ -20,7 +20,7 @@ GridActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
20
20
|
provide: EXTENSIONS_ACTION_TYPE,
|
|
21
21
|
useValue: 'entityActions',
|
|
22
22
|
},
|
|
23
|
-
], 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.
|
|
23
|
+
], 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.me-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.me-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: i1.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: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i2.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i4.EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], pipes: { "abpLocalization": i3.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
24
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: GridActionsComponent, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
26
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-actions.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,QAAQ,EACR,KAAK,GAEN,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;;;;;;AAc1F,MAAM,OAAO,oBAA8B,SAAQ,wBAA6C;IAS9F,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,CAAC,CAAC;QATT,SAAI,GAAG,WAAW,CAAC;QAInB,SAAI,GAAG,EAAE,CAAC;QAEV,cAAS,GAAqC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IAI9E,CAAC;;iHAXU,oBAAoB;qGAApB,oBAAoB,mGARpB;QACT;YACE,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,eAAe;SAC1B;KACF,+ECpBH,27CA2CA;2FDpBa,oBAAoB;kBAZhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,kBAAkB;oBAC5B,WAAW,EAAE,+BAA+B;oBAC5C,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,sBAAsB;4BAC/B,QAAQ,EAAE,eAAe;yBAC1B;qBACF;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;+FAEU,IAAI;sBAAZ,KAAK;gBAEY,KAAK;sBAAtB,KAAK;gBAEG,IAAI;sBAAZ,KAAK","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Injector,\n Input,\n TrackByFunction,\n} from '@angular/core';\nimport { EntityAction, EntityActionList } from '../../models/entity-actions';\nimport { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\n\n@Component({\n exportAs: 'abpGridActions',\n selector: 'abp-grid-actions',\n templateUrl: './grid-actions.component.html',\n providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'entityActions',\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GridActionsComponent<R = any> extends AbstractActionsComponent<EntityActionList<R>> {\n @Input() icon = 'fa fa-cog';\n\n @Input() readonly index: number;\n\n @Input() text = '';\n\n readonly trackByFn: TrackByFunction<EntityAction<R>> = (_, item) => item.text;\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","<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.
|
|
1
|
+
{"version":3,"file":"grid-actions.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,QAAQ,EACR,KAAK,GAEN,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;;;;;;AAc1F,MAAM,OAAO,oBAA8B,SAAQ,wBAA6C;IAS9F,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,CAAC,CAAC;QATT,SAAI,GAAG,WAAW,CAAC;QAInB,SAAI,GAAG,EAAE,CAAC;QAEV,cAAS,GAAqC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IAI9E,CAAC;;iHAXU,oBAAoB;qGAApB,oBAAoB,mGARpB;QACT;YACE,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,eAAe;SAC1B;KACF,+ECpBH,27CA2CA;2FDpBa,oBAAoB;kBAZhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,kBAAkB;oBAC5B,WAAW,EAAE,+BAA+B;oBAC5C,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,sBAAsB;4BAC/B,QAAQ,EAAE,eAAe;yBAC1B;qBACF;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;+FAEU,IAAI;sBAAZ,KAAK;gBAEY,KAAK;sBAAtB,KAAK;gBAEG,IAAI;sBAAZ,KAAK","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Injector,\n Input,\n TrackByFunction,\n} from '@angular/core';\nimport { EntityAction, EntityActionList } from '../../models/entity-actions';\nimport { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\n\n@Component({\n exportAs: 'abpGridActions',\n selector: 'abp-grid-actions',\n templateUrl: './grid-actions.component.html',\n providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'entityActions',\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GridActionsComponent<R = any> extends AbstractActionsComponent<EntityActionList<R>> {\n @Input() icon = 'fa fa-cog';\n\n @Input() readonly index: number;\n\n @Input() text = '';\n\n readonly trackByFn: TrackByFunction<EntityAction<R>> = (_, item) => item.text;\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","<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.me-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.me-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"]}
|
|
@@ -27,7 +27,7 @@ PageToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
27
27
|
provide: EXTENSIONS_ACTION_TYPE,
|
|
28
28
|
useValue: 'toolbarActions',
|
|
29
29
|
},
|
|
30
|
-
], exportAs: ["abpPageToolbar"], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end mx-
|
|
30
|
+
], exportAs: ["abpPageToolbar"], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end mx-0\" id=\"AbpContentToolbar\">\n <div\n class=\"col-auto px-1 pt-0 pt-md-2\"\n [class.pe-0]=\"last\"\n *ngFor=\"let action of actionList; trackBy: trackByFn; let last = last\"\n >\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.me-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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "abpLocalization": i2.LocalizationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: PageToolbarComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
33
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-toolbar.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EAGT,QAAQ,GAGT,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;;;;AAc1F,MAAM,OAAO,oBAA8B,SAAQ,wBAA8C;IAI/F,YAA6B,QAAkB;QAC7C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADW,aAAQ,GAAR,QAAQ,CAAU;QAHtC,cAAS,GAAyC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CACrE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;IAIhC,CAAC;IAED,cAAc,CAAC,MAA2B;QACxC,MAAM,GAAG,GAAG,CAAI,KAAkC,EAAE,aAAiB,EAAE,KAAmB,EAAE,EAAE;YAC5F,OAAO,KAAK,KAAK,sBAAsB;gBACrC,CAAC,CAAC,IAAI,CAAC,IAAI;gBACX,CAAC,CAAC,KAAK,KAAK,0BAA0B;oBACtC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC3C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC,CAAC;QAEF,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;;iHAlBU,oBAAoB;qGAApB,oBAAoB,2CARpB;QACT;YACE,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,gBAAgB;SAC3B;KACF,+EC1BH,
|
|
1
|
+
{"version":3,"file":"page-toolbar.component.js","sourceRoot":"","sources":["../../../../../../../../packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.ts","../../../../../../../../packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EAGT,QAAQ,GAGT,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;;;;AAc1F,MAAM,OAAO,oBAA8B,SAAQ,wBAA8C;IAI/F,YAA6B,QAAkB;QAC7C,KAAK,CAAC,QAAQ,CAAC,CAAC;QADW,aAAQ,GAAR,QAAQ,CAAU;QAHtC,cAAS,GAAyC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CACrE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC;IAIhC,CAAC;IAED,cAAc,CAAC,MAA2B;QACxC,MAAM,GAAG,GAAG,CAAI,KAAkC,EAAE,aAAiB,EAAE,KAAmB,EAAE,EAAE;YAC5F,OAAO,KAAK,KAAK,sBAAsB;gBACrC,CAAC,CAAC,IAAI,CAAC,IAAI;gBACX,CAAC,CAAC,KAAK,KAAK,0BAA0B;oBACtC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBAC3C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC,CAAC;QAEF,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;;iHAlBU,oBAAoB;qGAApB,oBAAoB,2CARpB;QACT;YACE,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,gBAAgB;SAC3B;KACF,+EC1BH,g7BAwBA;2FDKa,oBAAoB;kBAZhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,kBAAkB;oBAC5B,WAAW,EAAE,+BAA+B;oBAC5C,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,sBAAsB;4BAC/B,QAAQ,EAAE,gBAAgB;yBAC3B;qBACF;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n InjectFlags,\n InjectionToken,\n Injector,\n TrackByFunction,\n Type,\n} from '@angular/core';\nimport { ToolbarActionList, ToolbarComponent } from '../../models/toolbar-actions';\nimport {\n EXTENSIONS_ACTION_CALLBACK,\n EXTENSIONS_ACTION_DATA,\n EXTENSIONS_ACTION_TYPE,\n} from '../../tokens/extensions.token';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\n\n@Component({\n exportAs: 'abpPageToolbar',\n selector: 'abp-page-toolbar',\n templateUrl: './page-toolbar.component.html',\n providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'toolbarActions',\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageToolbarComponent<R = any> extends AbstractActionsComponent<ToolbarActionList<R>> {\n readonly trackByFn: TrackByFunction<ToolbarComponent<R>> = (_, item) =>\n item.action || item.component;\n\n constructor(private readonly injector: Injector) {\n super(injector);\n }\n\n createInjector(action: ToolbarComponent<R>): Injector {\n const get = <T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags) => {\n return token === EXTENSIONS_ACTION_DATA\n ? this.data\n : token === EXTENSIONS_ACTION_CALLBACK\n ? (data = this.data) => action.action(data)\n : this.getInjected.call(this.injector, token, notFoundValue, flags);\n };\n\n return { get };\n }\n}\n","<div class=\"row justify-content-end mx-0\" id=\"AbpContentToolbar\">\n <div\n class=\"col-auto px-1 pt-0 pt-md-2\"\n [class.pe-0]=\"last\"\n *ngFor=\"let action of actionList; trackBy: trackByFn; let last = last\"\n >\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.me-1]=\"action.icon\"></i>\n {{ action.text | abpLocalization }}\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</div>\n"]}
|
|
@@ -40,7 +40,7 @@ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
40
40
|
(focus)="focus.next($event); abpFocus.next($event)"
|
|
41
41
|
(blur)="blur.next($event); abpBlur.next($event)"
|
|
42
42
|
>
|
|
43
|
-
<i [ngClass]="icon" class="
|
|
43
|
+
<i [ngClass]="icon" class="me-1"></i><ng-content></ng-content>
|
|
44
44
|
</button>
|
|
45
45
|
`, isInline: true, directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }] });
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
@@ -58,7 +58,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
|
|
|
58
58
|
(focus)="focus.next($event); abpFocus.next($event)"
|
|
59
59
|
(blur)="blur.next($event); abpBlur.next($event)"
|
|
60
60
|
>
|
|
61
|
-
<i [ngClass]="icon" class="
|
|
61
|
+
<i [ngClass]="icon" class="me-1"></i><ng-content></ng-content>
|
|
62
62
|
</button>
|
|
63
63
|
`,
|
|
64
64
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.component.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/src/lib/components/button/button.component.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,EAEL,MAAM,EACN,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;;;;AAmBvB,MAAM,OAAO,eAAe;IAyC1B,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAvCvC,aAAQ,GAAG,EAAE,CAAC;QAGd,gBAAW,GAAG,iBAAiB,CAAC;QAGhC,eAAU,GAAG,QAAQ,CAAC;QAMtB,YAAO,GAAG,KAAK,CAAC;QAGhB,aAAQ,GAAG,KAAK,CAAC;QAKE,UAAK,GAAG,IAAI,YAAY,EAAc,CAAC;QAEvC,UAAK,GAAG,IAAI,YAAY,EAAc,CAAC;QAEvC,SAAI,GAAG,IAAI,YAAY,EAAc,CAAC;QAEtC,aAAQ,GAAG,IAAI,YAAY,EAAc,CAAC;QAE1C,aAAQ,GAAG,IAAI,YAAY,EAAc,CAAC;QAE1C,YAAO,GAAG,IAAI,YAAY,EAAc,CAAC;IASlB,CAAC;IAJ3C,IAAI,IAAI;QACN,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;IAClF,CAAC;IAID,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;;4GAjDU,eAAe;gGAAf,eAAe,odAfhB;;;;;;;;;;;;;GAaT;2FAEU,eAAe;kBAjB3B,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,QAAQ,EAAE;;;;;;;;;;;;;GAaT;iBACF;gGAGC,QAAQ;sBADP,KAAK;gBAIN,WAAW;sBADV,KAAK;gBAIN,UAAU;sBADT,KAAK;gBAIN,SAAS;sBADR,KAAK;gBAIN,OAAO;sBADN,KAAK;gBAIN,QAAQ;sBADP,KAAK;gBAIN,UAAU;sBADT,KAAK;gBAGa,KAAK;sBAAvB,MAAM;gBAEY,KAAK;sBAAvB,MAAM;gBAEY,IAAI;sBAAtB,MAAM;gBAEY,QAAQ;sBAA1B,MAAM;gBAEY,QAAQ;sBAA1B,MAAM;gBAEY,OAAO;sBAAzB,MAAM;gBAGP,SAAS;sBADR,SAAS;uBAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE","sourcesContent":["/* eslint-disable @angular-eslint/no-output-native */\nimport { ABP } from '@abp/ng.core';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'abp-button',\n template: `\n <button\n #button\n [id]=\"buttonId\"\n [attr.type]=\"buttonType\"\n [ngClass]=\"buttonClass\"\n [disabled]=\"loading || disabled\"\n (click.stop)=\"click.next($event); abpClick.next($event)\"\n (focus)=\"focus.next($event); abpFocus.next($event)\"\n (blur)=\"blur.next($event); abpBlur.next($event)\"\n >\n <i [ngClass]=\"icon\" class=\"
|
|
1
|
+
{"version":3,"file":"button.component.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/src/lib/components/button/button.component.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,EAEL,MAAM,EACN,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;;;;AAmBvB,MAAM,OAAO,eAAe;IAyC1B,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAvCvC,aAAQ,GAAG,EAAE,CAAC;QAGd,gBAAW,GAAG,iBAAiB,CAAC;QAGhC,eAAU,GAAG,QAAQ,CAAC;QAMtB,YAAO,GAAG,KAAK,CAAC;QAGhB,aAAQ,GAAG,KAAK,CAAC;QAKE,UAAK,GAAG,IAAI,YAAY,EAAc,CAAC;QAEvC,UAAK,GAAG,IAAI,YAAY,EAAc,CAAC;QAEvC,SAAI,GAAG,IAAI,YAAY,EAAc,CAAC;QAEtC,aAAQ,GAAG,IAAI,YAAY,EAAc,CAAC;QAE1C,aAAQ,GAAG,IAAI,YAAY,EAAc,CAAC;QAE1C,YAAO,GAAG,IAAI,YAAY,EAAc,CAAC;IASlB,CAAC;IAJ3C,IAAI,IAAI;QACN,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;IAClF,CAAC;IAID,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;;4GAjDU,eAAe;gGAAf,eAAe,odAfhB;;;;;;;;;;;;;GAaT;2FAEU,eAAe;kBAjB3B,SAAS;mBAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,QAAQ,EAAE;;;;;;;;;;;;;GAaT;iBACF;gGAGC,QAAQ;sBADP,KAAK;gBAIN,WAAW;sBADV,KAAK;gBAIN,UAAU;sBADT,KAAK;gBAIN,SAAS;sBADR,KAAK;gBAIN,OAAO;sBADN,KAAK;gBAIN,QAAQ;sBADP,KAAK;gBAIN,UAAU;sBADT,KAAK;gBAGa,KAAK;sBAAvB,MAAM;gBAEY,KAAK;sBAAvB,MAAM;gBAEY,IAAI;sBAAtB,MAAM;gBAEY,QAAQ;sBAA1B,MAAM;gBAEY,QAAQ;sBAA1B,MAAM;gBAEY,OAAO;sBAAzB,MAAM;gBAGP,SAAS;sBADR,SAAS;uBAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE","sourcesContent":["/* eslint-disable @angular-eslint/no-output-native */\nimport { ABP } from '@abp/ng.core';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'abp-button',\n template: `\n <button\n #button\n [id]=\"buttonId\"\n [attr.type]=\"buttonType\"\n [ngClass]=\"buttonClass\"\n [disabled]=\"loading || disabled\"\n (click.stop)=\"click.next($event); abpClick.next($event)\"\n (focus)=\"focus.next($event); abpFocus.next($event)\"\n (blur)=\"blur.next($event); abpBlur.next($event)\"\n >\n <i [ngClass]=\"icon\" class=\"me-1\"></i><ng-content></ng-content>\n </button>\n `,\n})\nexport class ButtonComponent implements OnInit {\n @Input()\n buttonId = '';\n\n @Input()\n buttonClass = 'btn btn-primary';\n\n @Input()\n buttonType = 'button';\n\n @Input()\n iconClass: string;\n\n @Input()\n loading = false;\n\n @Input()\n disabled = false;\n\n @Input()\n attributes: ABP.Dictionary<string>;\n\n @Output() readonly click = new EventEmitter<MouseEvent>();\n\n @Output() readonly focus = new EventEmitter<FocusEvent>();\n\n @Output() readonly blur = new EventEmitter<FocusEvent>();\n\n @Output() readonly abpClick = new EventEmitter<MouseEvent>();\n\n @Output() readonly abpFocus = new EventEmitter<FocusEvent>();\n\n @Output() readonly abpBlur = new EventEmitter<FocusEvent>();\n\n @ViewChild('button', { static: true })\n buttonRef: ElementRef<HTMLButtonElement>;\n\n get icon(): string {\n return `${this.loading ? 'fa fa-spinner fa-spin' : this.iconClass || 'd-none'}`;\n }\n\n constructor(private renderer: Renderer2) {}\n\n ngOnInit() {\n if (this.attributes) {\n Object.keys(this.attributes).forEach(key => {\n this.renderer.setAttribute(this.buttonRef.nativeElement, key, this.attributes[key]);\n });\n }\n }\n}\n"]}
|
|
@@ -47,7 +47,7 @@ export class HttpErrorWrapperComponent {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
HttpErrorWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: HttpErrorWrapperComponent, deps: [{ token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
-
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
|
|
50
|
+
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\">×</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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "abpLocalization": i1.LocalizationPipe } });
|
|
51
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: HttpErrorWrapperComponent, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
53
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-error-wrapper.component.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts","../../../../../../../packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAGL,SAAS,EAET,UAAU,EAMV,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAW,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;;;;;AAQtD,MAAM,OAAO,yBAAyB;IA8BpC,YAAoB,YAAiC;QAAjC,iBAAY,GAAZ,YAAY,CAAqB;QAvBrD,WAAM,GAAG,CAAC,CAAC;QAEX,UAAK,GAAsB,OAAO,CAAC;QAEnC,YAAO,GAAsB,8BAA8B,CAAC;QAE5D,oBAAe,GAAc,IAAI,CAAC;QAIlC,kBAAa,GAAG,KAAK,CAAC;QAItB,eAAU,GAAG,IAAI,CAAC;IASsC,CAAC;IAJzD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC;IAID,QAAQ;;QACN,IAAI,CAAC,eAAe;YAClB,CAAA,MAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAAE,gBAAgB,CAAC,kBAAkB,CAAC,KAAI,MAAM,CAAC;IAC3F,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK;iBAClC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC;iBAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,kBAAkB,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YACtD,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CACxC,kBAAkB,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAC,CACnE,CAAC;YACF,kBAAkB,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACtD;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAC9C,YAAY,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,CAAC,GAAkB,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAC5D,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,WAAW;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;sHAjEU,yBAAyB;0GAAzB,yBAAyB,iDAFzB,CAAC,mBAAmB,CAAC,qICrBlC,4hCAqCA;2FDda,yBAAyB;kBANrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,wBAAwB;oBAClC,WAAW,EAAE,qCAAqC;oBAClD,SAAS,EAAE,CAAC,mCAAmC,CAAC;oBAChD,SAAS,EAAE,CAAC,mBAAmB,CAAC;iBACjC;0GAyBC,YAAY;sBADX,SAAS;uBAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE","sourcesContent":["import { LocalizationParam, SubscriptionService } from '@abp/ng.core';\nimport {\n AfterViewInit,\n ApplicationRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n EmbeddedViewRef,\n Injector,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-http-error-wrapper',\n templateUrl: './http-error-wrapper.component.html',\n styleUrls: ['http-error-wrapper.component.scss'],\n providers: [SubscriptionService],\n})\nexport class HttpErrorWrapperComponent implements AfterViewInit, OnDestroy, OnInit {\n appRef: ApplicationRef;\n\n cfRes: ComponentFactoryResolver;\n\n injector: Injector;\n\n status = 0;\n\n title: LocalizationParam = 'Oops!';\n\n details: LocalizationParam = 'Sorry, an error has occured.';\n\n customComponent: Type<any> = null;\n\n destroy$: Subject<void>;\n\n hideCloseIcon = false;\n\n backgroundColor: string;\n\n isHomeShow = true;\n\n @ViewChild('container', { static: false })\n containerRef: ElementRef<HTMLDivElement>;\n\n get statusText(): string {\n return this.status ? `[${this.status}]` : '';\n }\n\n constructor(private subscription: SubscriptionService) {}\n\n ngOnInit() {\n this.backgroundColor =\n window.getComputedStyle(document.body)?.getPropertyValue('background-color') || '#fff';\n }\n\n ngAfterViewInit() {\n if (this.customComponent) {\n const customComponentRef = this.cfRes\n .resolveComponentFactory(this.customComponent)\n .create(this.injector);\n customComponentRef.instance.errorStatus = this.status;\n customComponentRef.instance.destroy$ = this.destroy$;\n this.appRef.attachView(customComponentRef.hostView);\n this.containerRef.nativeElement.appendChild(\n (customComponentRef.hostView as EmbeddedViewRef<any>).rootNodes[0],\n );\n customComponentRef.changeDetectorRef.detectChanges();\n }\n\n const keyup$ = fromEvent(document, 'keyup').pipe(\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\n );\n this.subscription.addOne(keyup$, () => this.destroy());\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n destroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<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
|
|
1
|
+
{"version":3,"file":"http-error-wrapper.component.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts","../../../../../../../packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAGL,SAAS,EAET,UAAU,EAMV,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAW,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;;;;;AAQtD,MAAM,OAAO,yBAAyB;IA8BpC,YAAoB,YAAiC;QAAjC,iBAAY,GAAZ,YAAY,CAAqB;QAvBrD,WAAM,GAAG,CAAC,CAAC;QAEX,UAAK,GAAsB,OAAO,CAAC;QAEnC,YAAO,GAAsB,8BAA8B,CAAC;QAE5D,oBAAe,GAAc,IAAI,CAAC;QAIlC,kBAAa,GAAG,KAAK,CAAC;QAItB,eAAU,GAAG,IAAI,CAAC;IASsC,CAAC;IAJzD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC;IAID,QAAQ;;QACN,IAAI,CAAC,eAAe;YAClB,CAAA,MAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAAE,gBAAgB,CAAC,kBAAkB,CAAC,KAAI,MAAM,CAAC;IAC3F,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK;iBAClC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC;iBAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,kBAAkB,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YACtD,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CACxC,kBAAkB,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAC,CACnE,CAAC;YACF,kBAAkB,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACtD;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAC9C,YAAY,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,CAAC,GAAkB,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAC5D,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,WAAW;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;sHAjEU,yBAAyB;0GAAzB,yBAAyB,iDAFzB,CAAC,mBAAmB,CAAC,qICrBlC,4hCAqCA;2FDda,yBAAyB;kBANrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,wBAAwB;oBAClC,WAAW,EAAE,qCAAqC;oBAClD,SAAS,EAAE,CAAC,mCAAmC,CAAC;oBAChD,SAAS,EAAE,CAAC,mBAAmB,CAAC;iBACjC;0GAyBC,YAAY;sBADX,SAAS;uBAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE","sourcesContent":["import { LocalizationParam, SubscriptionService } from '@abp/ng.core';\nimport {\n AfterViewInit,\n ApplicationRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n EmbeddedViewRef,\n Injector,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-http-error-wrapper',\n templateUrl: './http-error-wrapper.component.html',\n styleUrls: ['http-error-wrapper.component.scss'],\n providers: [SubscriptionService],\n})\nexport class HttpErrorWrapperComponent implements AfterViewInit, OnDestroy, OnInit {\n appRef: ApplicationRef;\n\n cfRes: ComponentFactoryResolver;\n\n injector: Injector;\n\n status = 0;\n\n title: LocalizationParam = 'Oops!';\n\n details: LocalizationParam = 'Sorry, an error has occured.';\n\n customComponent: Type<any> = null;\n\n destroy$: Subject<void>;\n\n hideCloseIcon = false;\n\n backgroundColor: string;\n\n isHomeShow = true;\n\n @ViewChild('container', { static: false })\n containerRef: ElementRef<HTMLDivElement>;\n\n get statusText(): string {\n return this.status ? `[${this.status}]` : '';\n }\n\n constructor(private subscription: SubscriptionService) {}\n\n ngOnInit() {\n this.backgroundColor =\n window.getComputedStyle(document.body)?.getPropertyValue('background-color') || '#fff';\n }\n\n ngAfterViewInit() {\n if (this.customComponent) {\n const customComponentRef = this.cfRes\n .resolveComponentFactory(this.customComponent)\n .create(this.injector);\n customComponentRef.instance.errorStatus = this.status;\n customComponentRef.instance.destroy$ = this.destroy$;\n this.appRef.attachView(customComponentRef.hostView);\n this.containerRef.nativeElement.appendChild(\n (customComponentRef.hostView as EmbeddedViewRef<any>).rootNodes[0],\n );\n customComponentRef.changeDetectorRef.detectChanges();\n }\n\n const keyup$ = fromEvent(document, 'keyup').pipe(\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\n );\n this.subscription.addOne(keyup$, () => this.destroy());\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n destroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<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\">×</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"]}
|
|
@@ -139,7 +139,7 @@ export class ModalComponent {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ConfirmationService }, { token: i2.SubscriptionService }, { token: SUPPRESS_UNSAVED_CHANGES_WARNING, optional: true }, { token: i3.NgbModal }, { token: i4.ModalRefService }], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
-
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
|
|
142
|
+
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: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
143
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: ModalComponent, decorators: [{
|
|
144
144
|
type: Component,
|
|
145
145
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.component.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/src/lib/components/modal/modal.component.ts","../../../../../../../packages/theme-shared/src/lib/components/modal/modal.component.html"],"names":[],"mappings":"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","sourcesContent":["import { SubscriptionService, uuid } from '@abp/ng.core';\nimport {\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { NgbModal, NgbModalOptions, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';\nimport { Confirmation } from '../../models/confirmation';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { SUPPRESS_UNSAVED_CHANGES_WARNING } from '../../tokens/suppress-unsaved-changes-warning.token';\nimport { ButtonComponent } from '../button/button.component';\nimport { DismissableModal, ModalDismissMode, ModalRefService } from './modal-ref.service';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [SubscriptionService],\n})\nexport class ModalComponent implements OnInit, OnDestroy, DismissableModal {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (typeof value !== 'boolean') return;\n this.toggle$.next(value);\n }\n\n @Input()\n get busy(): boolean {\n return this._busy;\n }\n set busy(value: boolean) {\n if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {\n this.abpSubmit.loading = value;\n }\n\n this._busy = value;\n }\n\n @Input() options: NgbModalOptions = {};\n\n @Input() suppressUnsavedChangesWarning = this.suppressUnsavedChangesWarningToken;\n\n @ViewChild('modalContent') modalContent: TemplateRef<any>;\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef<any>;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef<any>;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef<any>;\n\n @ContentChild(ButtonComponent, { static: false, read: ButtonComponent })\n abpSubmit: ButtonComponent;\n\n @Output() readonly visibleChange = new EventEmitter<boolean>();\n\n @Output() readonly init = new EventEmitter<void>();\n\n @Output() readonly appear = new EventEmitter<void>();\n\n @Output() readonly disappear = new EventEmitter<void>();\n\n _visible = false;\n\n _busy = false;\n\n modalRef: NgbModalRef;\n\n isConfirmationOpen = false;\n\n destroy$ = new Subject<void>();\n\n modalIdentifier = `modal-${uuid()}`;\n\n private toggle$ = new Subject<boolean>();\n\n get modalWindowRef() {\n return document.querySelector(`ngb-modal-window.${this.modalIdentifier}`);\n }\n\n get isFormDirty(): boolean {\n return Boolean(this.modalWindowRef.querySelector('.ng-dirty'));\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private subscription: SubscriptionService,\n @Optional()\n @Inject(SUPPRESS_UNSAVED_CHANGES_WARNING)\n private suppressUnsavedChangesWarningToken: boolean,\n private modal: NgbModal,\n private modalRefService: ModalRefService,\n ) {\n this.initToggleStream();\n }\n ngOnInit(): void {\n this.modalRefService.register(this);\n }\n\n dismiss(mode: ModalDismissMode) {\n switch (mode) {\n case 'hard':\n this.visible = false;\n break;\n case 'soft':\n this.close();\n break;\n default:\n break;\n }\n }\n\n private initToggleStream() {\n this.subscription.addOne(this.toggle$.pipe(debounceTime(0), distinctUntilChanged()), value =>\n this.toggle(value),\n );\n }\n\n private toggle(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.modalRef?.dismiss();\n this.disappear.emit();\n this.destroy$.next();\n return;\n }\n\n setTimeout(() => this.listen(), 0);\n this.modalRef = this.modal.open(this.modalContent, {\n size: 'md',\n centered: false,\n keyboard: false,\n scrollable: true,\n beforeDismiss: () => {\n if (!this.visible) return true;\n\n this.close();\n return !this.visible;\n },\n ...this.options,\n windowClass: `${this.options.windowClass || ''} ${this.modalIdentifier}`,\n });\n\n this.appear.emit();\n }\n\n ngOnDestroy(): void {\n this.modalRefService.unregister(this);\n this.toggle(false);\n this.destroy$.next();\n }\n\n close() {\n if (this.busy) return;\n\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning) {\n if (this.isConfirmationOpen) return;\n\n this.isConfirmationOpen = true;\n this.confirmationService\n .warn(\n 'AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage',\n 'AbpAccount::AreYouSure',\n { dismissible: false },\n )\n .subscribe((status: Confirmation.Status) => {\n this.isConfirmationOpen = false;\n if (status === Confirmation.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n\n listen() {\n fromEvent(this.modalWindowRef, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\n )\n .subscribe(() => this.close());\n\n fromEvent(window, 'beforeunload')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n event.preventDefault();\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning) {\n event.returnValue = true;\n } else {\n delete event.returnValue;\n }\n });\n\n this.init.emit();\n }\n}\n","<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 \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\">×</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"]}
|
|
1
|
+
{"version":3,"file":"modal.component.js","sourceRoot":"","sources":["../../../../../../../packages/theme-shared/src/lib/components/modal/modal.component.ts","../../../../../../../packages/theme-shared/src/lib/components/modal/modal.component.html"],"names":[],"mappings":"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","sourcesContent":["import { SubscriptionService, uuid } from '@abp/ng.core';\nimport {\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { NgbModal, NgbModalOptions, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';\nimport { Confirmation } from '../../models/confirmation';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { SUPPRESS_UNSAVED_CHANGES_WARNING } from '../../tokens/suppress-unsaved-changes-warning.token';\nimport { ButtonComponent } from '../button/button.component';\nimport { DismissableModal, ModalDismissMode, ModalRefService } from './modal-ref.service';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [SubscriptionService],\n})\nexport class ModalComponent implements OnInit, OnDestroy, DismissableModal {\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (typeof value !== 'boolean') return;\n this.toggle$.next(value);\n }\n\n @Input()\n get busy(): boolean {\n return this._busy;\n }\n set busy(value: boolean) {\n if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {\n this.abpSubmit.loading = value;\n }\n\n this._busy = value;\n }\n\n @Input() options: NgbModalOptions = {};\n\n @Input() suppressUnsavedChangesWarning = this.suppressUnsavedChangesWarningToken;\n\n @ViewChild('modalContent') modalContent: TemplateRef<any>;\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef<any>;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef<any>;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef<any>;\n\n @ContentChild(ButtonComponent, { static: false, read: ButtonComponent })\n abpSubmit: ButtonComponent;\n\n @Output() readonly visibleChange = new EventEmitter<boolean>();\n\n @Output() readonly init = new EventEmitter<void>();\n\n @Output() readonly appear = new EventEmitter<void>();\n\n @Output() readonly disappear = new EventEmitter<void>();\n\n _visible = false;\n\n _busy = false;\n\n modalRef: NgbModalRef;\n\n isConfirmationOpen = false;\n\n destroy$ = new Subject<void>();\n\n modalIdentifier = `modal-${uuid()}`;\n\n private toggle$ = new Subject<boolean>();\n\n get modalWindowRef() {\n return document.querySelector(`ngb-modal-window.${this.modalIdentifier}`);\n }\n\n get isFormDirty(): boolean {\n return Boolean(this.modalWindowRef.querySelector('.ng-dirty'));\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private subscription: SubscriptionService,\n @Optional()\n @Inject(SUPPRESS_UNSAVED_CHANGES_WARNING)\n private suppressUnsavedChangesWarningToken: boolean,\n private modal: NgbModal,\n private modalRefService: ModalRefService,\n ) {\n this.initToggleStream();\n }\n ngOnInit(): void {\n this.modalRefService.register(this);\n }\n\n dismiss(mode: ModalDismissMode) {\n switch (mode) {\n case 'hard':\n this.visible = false;\n break;\n case 'soft':\n this.close();\n break;\n default:\n break;\n }\n }\n\n private initToggleStream() {\n this.subscription.addOne(this.toggle$.pipe(debounceTime(0), distinctUntilChanged()), value =>\n this.toggle(value),\n );\n }\n\n private toggle(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.modalRef?.dismiss();\n this.disappear.emit();\n this.destroy$.next();\n return;\n }\n\n setTimeout(() => this.listen(), 0);\n this.modalRef = this.modal.open(this.modalContent, {\n size: 'md',\n centered: false,\n keyboard: false,\n scrollable: true,\n beforeDismiss: () => {\n if (!this.visible) return true;\n\n this.close();\n return !this.visible;\n },\n ...this.options,\n windowClass: `${this.options.windowClass || ''} ${this.modalIdentifier}`,\n });\n\n this.appear.emit();\n }\n\n ngOnDestroy(): void {\n this.modalRefService.unregister(this);\n this.toggle(false);\n this.destroy$.next();\n }\n\n close() {\n if (this.busy) return;\n\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning) {\n if (this.isConfirmationOpen) return;\n\n this.isConfirmationOpen = true;\n this.confirmationService\n .warn(\n 'AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage',\n 'AbpAccount::AreYouSure',\n { dismissible: false },\n )\n .subscribe((status: Confirmation.Status) => {\n this.isConfirmationOpen = false;\n if (status === Confirmation.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n\n listen() {\n fromEvent(this.modalWindowRef, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\n )\n .subscribe(() => this.close());\n\n fromEvent(window, 'beforeunload')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n event.preventDefault();\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning) {\n event.returnValue = true;\n } else {\n delete event.returnValue;\n }\n });\n\n this.init.emit();\n }\n}\n","<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 \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"]}
|
|
@@ -175,7 +175,8 @@ ngb-typeahead-window, ngb-typeahead-window.dropdown-menu {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
/* </animations */
|
|
178
|
-
|
|
178
|
+
.ngb-dp-body {
|
|
179
|
+
z-index: 1055 !important;
|
|
180
|
+
}
|
|
179
181
|
`;
|
|
180
|
-
export const BOOTSTRAP = 'bootstrap-{{dir}}.min.css';
|
|
181
182
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/constants/styles.ts"],"names":[],"mappings":"AAAA,eAAe
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/constants/styles.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoLd,CAAC","sourcesContent":["export 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`;\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { getLocaleDirection, LocalizationService } from '@abp/ng.core';
|
|
2
|
+
import { Injectable, Injector } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { map, startWith } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class DocumentDirHandlerService {
|
|
7
|
+
constructor(injector) {
|
|
8
|
+
this.injector = injector;
|
|
9
|
+
this.dir = new BehaviorSubject('ltr');
|
|
10
|
+
this.dir$ = this.dir.asObservable();
|
|
11
|
+
this.listenToLanguageChanges();
|
|
12
|
+
}
|
|
13
|
+
listenToLanguageChanges() {
|
|
14
|
+
const l10n = this.injector.get(LocalizationService);
|
|
15
|
+
// will always listen, no need to unsubscribe
|
|
16
|
+
l10n.languageChange$
|
|
17
|
+
.pipe(startWith(l10n.currentLang), map(locale => getLocaleDirection(locale)))
|
|
18
|
+
.subscribe(dir => {
|
|
19
|
+
this.dir.next(dir);
|
|
20
|
+
this.setBodyDir(dir);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
setBodyDir(dir) {
|
|
24
|
+
document.body.dir = dir;
|
|
25
|
+
document.dir = dir;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
DocumentDirHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: DocumentDirHandlerService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
DocumentDirHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: DocumentDirHandlerService });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: DocumentDirHandlerService, decorators: [{
|
|
31
|
+
type: Injectable
|
|
32
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
33
|
+
//# sourceMappingURL=document-dir.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-dir.handler.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/handlers/document-dir.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;AAIhD,MAAM,OAAO,yBAAyB;IAGpC,YAAsB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAFhC,QAAG,GAAG,IAAI,eAAe,CAAkB,KAAK,CAAC,CAAC;QAC1D,SAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAE7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAEO,uBAAuB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEpD,6CAA6C;QAC7C,IAAI,CAAC,eAAe;aACjB,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAC1C;aACA,SAAS,CAAC,GAAG,CAAC,EAAE;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,UAAU,CAAC,GAAoB;QACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACxB,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;IACrB,CAAC;;sHAzBU,yBAAyB;0HAAzB,yBAAyB;2FAAzB,yBAAyB;kBADrC,UAAU","sourcesContent":["import { getLocaleDirection, LocalizationService } from '@abp/ng.core';\nimport { Injectable, Injector } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { LocaleDirection } from '../models/common';\n\n@Injectable()\nexport class DocumentDirHandlerService {\n private dir = new BehaviorSubject<LocaleDirection>('ltr');\n dir$ = this.dir.asObservable();\n constructor(protected injector: Injector) {\n this.listenToLanguageChanges();\n }\n\n private listenToLanguageChanges() {\n const l10n = this.injector.get(LocalizationService);\n\n // will always listen, no need to unsubscribe\n l10n.languageChange$\n .pipe(\n startWith(l10n.currentLang),\n map(locale => getLocaleDirection(locale)),\n )\n .subscribe(dir => {\n this.dir.next(dir);\n this.setBodyDir(dir);\n });\n }\n\n private setBodyDir(dir: LocaleDirection) {\n document.body.dir = dir;\n document.dir = dir;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/theme-shared/src/lib/handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './document-dir.handler';\nexport * from './error.handler';\n"]}
|