@stemy/ngx-utils 19.6.6 → 19.6.8
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/fesm2022/stemy-ngx-utils.mjs +21 -10
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
- package/ngx-utils/common-types.d.ts +5 -1
- package/ngx-utils/ngx-utils.imports.d.ts +2 -2
- package/ngx-utils/services/open-api.service.d.ts +2 -1
- package/ngx-utils/tokens.d.ts +2 -1
- package/ngx-utils/utils/cached-factory.d.ts +2 -2
- package/package.json +1 -1
- package/public_api.d.ts +2 -2
|
@@ -484,6 +484,7 @@ const ROOT_ELEMENT = new InjectionToken("app-root-element");
|
|
|
484
484
|
const RESIZE_DELAY = new InjectionToken("resize-event-delay");
|
|
485
485
|
const RESIZE_STRATEGY = new InjectionToken("resize-event-strategy");
|
|
486
486
|
const ERROR_HANDLER = new InjectionToken("error-handler-callback");
|
|
487
|
+
const STATIC_SCHEMAS = new InjectionToken("static-openapi-schemas");
|
|
487
488
|
|
|
488
489
|
class AjaxRequestHandler {
|
|
489
490
|
static { this.isOverridden = false; }
|
|
@@ -3052,10 +3053,7 @@ class BaseHttpService {
|
|
|
3052
3053
|
}
|
|
3053
3054
|
handleUnauthorizedError(absoluteUrl, options, reject) {
|
|
3054
3055
|
reject();
|
|
3055
|
-
if (BaseHttpService.failedRequests.length > 1)
|
|
3056
|
-
return;
|
|
3057
|
-
}
|
|
3058
|
-
if (this.universal.isServer)
|
|
3056
|
+
if (BaseHttpService.failedRequests.length > 1 || this.universal.isServer)
|
|
3059
3057
|
return;
|
|
3060
3058
|
console.log("User auth error", absoluteUrl, options);
|
|
3061
3059
|
}
|
|
@@ -4056,8 +4054,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
4056
4054
|
}] });
|
|
4057
4055
|
|
|
4058
4056
|
class OpenApiService {
|
|
4059
|
-
constructor(api) {
|
|
4057
|
+
constructor(api, staticSchemas) {
|
|
4060
4058
|
this.api = api;
|
|
4059
|
+
this.staticSchemas = staticSchemas;
|
|
4061
4060
|
this.dynamicSchemas = {};
|
|
4062
4061
|
}
|
|
4063
4062
|
isDynamicSchema(value) {
|
|
@@ -4074,7 +4073,12 @@ class OpenApiService {
|
|
|
4074
4073
|
const apiDocs = this.api.get("api-docs", { cache });
|
|
4075
4074
|
if (apiDocs !== this.apiDocs) {
|
|
4076
4075
|
this.apiDocs = apiDocs;
|
|
4077
|
-
this.schemas = apiDocs.then(res =>
|
|
4076
|
+
this.schemas = apiDocs.then(res => {
|
|
4077
|
+
return {
|
|
4078
|
+
...this.extractSchemas({ definitions: this.staticSchemas }),
|
|
4079
|
+
...this.extractSchemas(res)
|
|
4080
|
+
};
|
|
4081
|
+
});
|
|
4078
4082
|
}
|
|
4079
4083
|
return this.schemas;
|
|
4080
4084
|
}
|
|
@@ -4126,7 +4130,7 @@ class OpenApiService {
|
|
|
4126
4130
|
});
|
|
4127
4131
|
return schemas;
|
|
4128
4132
|
}
|
|
4129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OpenApiService, deps: [{ token: API_SERVICE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OpenApiService, deps: [{ token: API_SERVICE }, { token: STATIC_SCHEMAS }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4130
4134
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OpenApiService }); }
|
|
4131
4135
|
}
|
|
4132
4136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OpenApiService, decorators: [{
|
|
@@ -4134,6 +4138,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
4134
4138
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
4135
4139
|
type: Inject,
|
|
4136
4140
|
args: [API_SERVICE]
|
|
4141
|
+
}] }, { type: undefined, decorators: [{
|
|
4142
|
+
type: Inject,
|
|
4143
|
+
args: [STATIC_SCHEMAS]
|
|
4137
4144
|
}] }] });
|
|
4138
4145
|
|
|
4139
4146
|
class BaseToasterService {
|
|
@@ -8405,7 +8412,7 @@ class UploadComponent {
|
|
|
8405
8412
|
provide: NG_VALUE_ACCESSOR,
|
|
8406
8413
|
useExisting: forwardRef(() => UploadComponent),
|
|
8407
8414
|
multi: true,
|
|
8408
|
-
}], viewQueries: [{ propertyName: "uploadBtn", first: true, predicate: ["uploadBtn"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #itemBgTemplate let-bg=\"bg\">\n @if (bg) {\n <div class=\"upload-item-bg\" [ngStyle]=\"{backgroundImage: `url('${bg}')`}\">\n <div>\n <img alt=\"item image\" [src]=\"bg | safe: 'url'\" />\n </div>\n </div>\n }\n</ng-template>\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\">\n <div class=\"upload-item\">\n <ng-container [ngTemplateOutlet]=\"itemBgTemplate\"\n [ngTemplateOutletContext]=\"{bg: isImage || (item | isType: 'file') ? getUrl(item) : null}\">\n </ng-container>\n @if (!disabled) {\n <close-btn class=\"remove-item-btn\" (click)=\"removeItem(index)\"></close-btn>\n }\n<!-- <btn size=\"small\" class=\"download-item-btn\" icon=\"download\"></btn>-->\n </div>\n</ng-template>\n\n<div class=\"upload\" [ngClass]=\"{disabled: disabled}\">\n <div class=\"upload-input\" [ngClass]=\"{'drop-allowed': dropAllowed}\">\n <input type=\"file\"\n #input\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n [accept]=\"acceptAttr\"\n (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDrop()\"\n (drop)=\"onDrop()\"\n (click)=\"onInputClick($event)\"\n (blur)=\"onTouched($event)\"\n (change)=\"onInputChange($event)\"/>\n @if (message) {\n <div class=\"upload-message\"\n [ngClass]=\"{'has-value': $any(value)?.length}\"\n [innerHTML]=\"message | translate | safe:'html'\">\n </div>\n }\n <div class=\"upload-container\">\n\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: value, index: 0}\"\n *ngIf=\"!multiple && value\">\n </ng-container>\n <ng-container *ngIf=\"multiple\">\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: item, index: ix}\"\n *ngFor=\"let item of $any(value); let ix = index\">\n </ng-container>\n </ng-container>\n\n <div class=\"upload-item\" *ngFor=\"let proc of processing\">\n <ng-container [ngTemplateOutlet]=\"itemBgTemplate\"\n [ngTemplateOutletContext]=\"{bg: proc.preview}\">\n </ng-container>\n <div class=\"upload-progress\">\n <div class=\"upload-progress-num\">{{ proc.progress }}%</div>\n <div class=\"upload-progress-bar\" [ngStyle]=\"{width: proc.progress + '%'}\">\n\n </div>\n </div>\n </div>\n\n </div>\n @if (!disabled) {\n <btn class=\"upload-btn\" #uploadBtn [label]=\"buttonText\" (click)=\"input.click()\"></btn>\n }\n </div>\n</div>\n", styles: [".upload{--progress-bg: var(--primary-color, var(--mat-sys-primary, black));--progress-text: var(--text-color, var(--mat-sys-on-primary, white));--
|
|
8415
|
+
}], viewQueries: [{ propertyName: "uploadBtn", first: true, predicate: ["uploadBtn"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #itemBgTemplate let-bg=\"bg\">\n @if (bg) {\n <div class=\"upload-item-bg\" [ngStyle]=\"{backgroundImage: `url('${bg}')`}\">\n <div>\n <img alt=\"item image\" [src]=\"bg | safe: 'url'\" />\n </div>\n </div>\n }\n</ng-template>\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\">\n <div class=\"upload-item\">\n <ng-container [ngTemplateOutlet]=\"itemBgTemplate\"\n [ngTemplateOutletContext]=\"{bg: isImage || (item | isType: 'file') ? getUrl(item) : null}\">\n </ng-container>\n @if (!disabled) {\n <close-btn class=\"remove-item-btn\" (click)=\"removeItem(index)\"></close-btn>\n }\n<!-- <btn size=\"small\" class=\"download-item-btn\" icon=\"download\"></btn>-->\n </div>\n</ng-template>\n\n<div class=\"file-upload\" [ngClass]=\"{disabled: disabled}\">\n <div class=\"upload-input\" [ngClass]=\"{'drop-allowed': dropAllowed}\">\n <input type=\"file\"\n #input\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n [accept]=\"acceptAttr\"\n (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDrop()\"\n (drop)=\"onDrop()\"\n (click)=\"onInputClick($event)\"\n (blur)=\"onTouched($event)\"\n (change)=\"onInputChange($event)\"/>\n @if (message) {\n <div class=\"upload-message\"\n [ngClass]=\"{'has-value': $any(value)?.length}\"\n [innerHTML]=\"message | translate | safe:'html'\">\n </div>\n }\n <div class=\"upload-container\">\n\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: value, index: 0}\"\n *ngIf=\"!multiple && value\">\n </ng-container>\n <ng-container *ngIf=\"multiple\">\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: item, index: ix}\"\n *ngFor=\"let item of $any(value); let ix = index\">\n </ng-container>\n </ng-container>\n\n <div class=\"upload-item\" *ngFor=\"let proc of processing\">\n <ng-container [ngTemplateOutlet]=\"itemBgTemplate\"\n [ngTemplateOutletContext]=\"{bg: proc.preview}\">\n </ng-container>\n <div class=\"upload-progress\">\n <div class=\"upload-progress-num\">{{ proc.progress }}%</div>\n <div class=\"upload-progress-bar\" [ngStyle]=\"{width: proc.progress + '%'}\">\n\n </div>\n </div>\n </div>\n\n </div>\n @if (!disabled) {\n <btn class=\"upload-btn\" #uploadBtn [label]=\"buttonText\" (click)=\"input.click()\"></btn>\n }\n </div>\n</div>\n", styles: [".file-upload{--upload-bg-lightness: 85%;--upload-bg-opacity: 1;--upload-padding: 5px;--upload-border-width: 2px;--upload-border-color: rgba(0, 0, 0, .25);--upload-progress-bg: var(--primary-color, var(--mat-sys-primary, black));--upload-progress-text: var(--text-color, var(--mat-sys-on-primary, white));--upload-item-size: 120px;--upload-item-radius: 5px;--message-size: 20px;--message-color: #7e7e7e;--message-drop-color: #474747;--btn-distance: 3px;--btn-top-distance: var(--btn-distance);--btn-left-distance: var(--btn-distance);--btn-right-distance: var(--btn-distance);margin:5px 0}.file-upload *{box-sizing:border-box}.file-upload.disabled{--upload-bg-lightness: 75%}.file-upload input[type=file]{display:block;position:absolute;inset:0;opacity:0}.file-upload input[type=file]::file-selector-button{width:100%;height:100%}.file-upload .upload-input{width:100%;border:var(--upload-border-width) var(--upload-border-color) dashed;border-radius:var(--upload-item-radius);background-color:hsl(0,0%,var(--upload-bg-lightness),var(--upload-bg-opacity));transition:.2s;flex-wrap:wrap;position:relative;padding:var(--upload-padding)}.file-upload .upload-input .upload-message{position:absolute;display:flex;align-items:center;justify-content:center;width:100%;height:100%;top:0;left:0;pointer-events:none;font-size:var(--message-size);color:var(--message-color);transition:.2s}.file-upload .upload-input .upload-message.has-value{display:none}.file-upload .upload-input .upload-container{position:relative;pointer-events:none;min-height:var(--upload-item-size);display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.file-upload .upload-input .upload-item{position:relative;pointer-events:auto;width:var(--upload-item-size);height:var(--upload-item-size);border-radius:var(--upload-item-radius);border:2px solid white;overflow:hidden;display:flex;align-items:center;justify-content:center}.file-upload .upload-input .upload-item-bg{background:#fff center center no-repeat;background-size:cover;position:absolute;inset:0}.file-upload .upload-input .upload-item-bg div{width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.file-upload .upload-input .upload-item-bg img{max-width:100%;max-height:100%;object-fit:contain;background:#ffffffbf}.file-upload .upload-input .upload-progress{position:relative;width:90%;height:15px;border:1px solid darkgrey;background:#ffffff80}.file-upload .upload-input .upload-progress-bar{position:absolute;height:15px;background:var(--upload-progress-bg);top:0}.file-upload .upload-input .upload-progress-num{position:relative;z-index:1;font-size:12px;line-height:15px;text-align:center;color:var(--upload-progress-text)}.file-upload .upload-input.drop-allowed{--upload-bg-lightness: 95%}.file-upload .upload-input.drop-allowed .upload-message{color:var(--message-drop-color)}.file-upload .upload-btn{position:relative;margin-top:5px;width:fit-content;display:block}.file-upload .remove-item-btn{position:absolute;top:var(--btn-top-distance);right:var(--btn-right-distance)}.file-upload .download-item-btn{position:absolute;top:var(--btn-top-distance);left:var(--btn-left-distance)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: BtnComponent, selector: "btn", inputs: ["label", "tooltip", "icon", "disabled", "type", "size"] }, { kind: "component", type: CloseBtnComponent, selector: "close-btn" }, { kind: "pipe", type: IsTypePipe, name: "isType" }, { kind: "pipe", type: SafeHtmlPipe, name: "safe" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
8409
8416
|
}
|
|
8410
8417
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UploadComponent, decorators: [{
|
|
8411
8418
|
type: Component,
|
|
@@ -8413,7 +8420,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
8413
8420
|
provide: NG_VALUE_ACCESSOR,
|
|
8414
8421
|
useExisting: forwardRef(() => UploadComponent),
|
|
8415
8422
|
multi: true,
|
|
8416
|
-
}], template: "<ng-template #itemBgTemplate let-bg=\"bg\">\n @if (bg) {\n <div class=\"upload-item-bg\" [ngStyle]=\"{backgroundImage: `url('${bg}')`}\">\n <div>\n <img alt=\"item image\" [src]=\"bg | safe: 'url'\" />\n </div>\n </div>\n }\n</ng-template>\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\">\n <div class=\"upload-item\">\n <ng-container [ngTemplateOutlet]=\"itemBgTemplate\"\n [ngTemplateOutletContext]=\"{bg: isImage || (item | isType: 'file') ? getUrl(item) : null}\">\n </ng-container>\n @if (!disabled) {\n <close-btn class=\"remove-item-btn\" (click)=\"removeItem(index)\"></close-btn>\n }\n<!-- <btn size=\"small\" class=\"download-item-btn\" icon=\"download\"></btn>-->\n </div>\n</ng-template>\n\n<div class=\"upload\" [ngClass]=\"{disabled: disabled}\">\n <div class=\"upload-input\" [ngClass]=\"{'drop-allowed': dropAllowed}\">\n <input type=\"file\"\n #input\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n [accept]=\"acceptAttr\"\n (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDrop()\"\n (drop)=\"onDrop()\"\n (click)=\"onInputClick($event)\"\n (blur)=\"onTouched($event)\"\n (change)=\"onInputChange($event)\"/>\n @if (message) {\n <div class=\"upload-message\"\n [ngClass]=\"{'has-value': $any(value)?.length}\"\n [innerHTML]=\"message | translate | safe:'html'\">\n </div>\n }\n <div class=\"upload-container\">\n\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: value, index: 0}\"\n *ngIf=\"!multiple && value\">\n </ng-container>\n <ng-container *ngIf=\"multiple\">\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: item, index: ix}\"\n *ngFor=\"let item of $any(value); let ix = index\">\n </ng-container>\n </ng-container>\n\n <div class=\"upload-item\" *ngFor=\"let proc of processing\">\n <ng-container [ngTemplateOutlet]=\"itemBgTemplate\"\n [ngTemplateOutletContext]=\"{bg: proc.preview}\">\n </ng-container>\n <div class=\"upload-progress\">\n <div class=\"upload-progress-num\">{{ proc.progress }}%</div>\n <div class=\"upload-progress-bar\" [ngStyle]=\"{width: proc.progress + '%'}\">\n\n </div>\n </div>\n </div>\n\n </div>\n @if (!disabled) {\n <btn class=\"upload-btn\" #uploadBtn [label]=\"buttonText\" (click)=\"input.click()\"></btn>\n }\n </div>\n</div>\n", styles: [".upload{--progress-bg: var(--primary-color, var(--mat-sys-primary, black));--progress-text: var(--text-color, var(--mat-sys-on-primary, white));--
|
|
8423
|
+
}], template: "<ng-template #itemBgTemplate let-bg=\"bg\">\n @if (bg) {\n <div class=\"upload-item-bg\" [ngStyle]=\"{backgroundImage: `url('${bg}')`}\">\n <div>\n <img alt=\"item image\" [src]=\"bg | safe: 'url'\" />\n </div>\n </div>\n }\n</ng-template>\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\">\n <div class=\"upload-item\">\n <ng-container [ngTemplateOutlet]=\"itemBgTemplate\"\n [ngTemplateOutletContext]=\"{bg: isImage || (item | isType: 'file') ? getUrl(item) : null}\">\n </ng-container>\n @if (!disabled) {\n <close-btn class=\"remove-item-btn\" (click)=\"removeItem(index)\"></close-btn>\n }\n<!-- <btn size=\"small\" class=\"download-item-btn\" icon=\"download\"></btn>-->\n </div>\n</ng-template>\n\n<div class=\"file-upload\" [ngClass]=\"{disabled: disabled}\">\n <div class=\"upload-input\" [ngClass]=\"{'drop-allowed': dropAllowed}\">\n <input type=\"file\"\n #input\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n [accept]=\"acceptAttr\"\n (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDrop()\"\n (drop)=\"onDrop()\"\n (click)=\"onInputClick($event)\"\n (blur)=\"onTouched($event)\"\n (change)=\"onInputChange($event)\"/>\n @if (message) {\n <div class=\"upload-message\"\n [ngClass]=\"{'has-value': $any(value)?.length}\"\n [innerHTML]=\"message | translate | safe:'html'\">\n </div>\n }\n <div class=\"upload-container\">\n\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: value, index: 0}\"\n *ngIf=\"!multiple && value\">\n </ng-container>\n <ng-container *ngIf=\"multiple\">\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: item, index: ix}\"\n *ngFor=\"let item of $any(value); let ix = index\">\n </ng-container>\n </ng-container>\n\n <div class=\"upload-item\" *ngFor=\"let proc of processing\">\n <ng-container [ngTemplateOutlet]=\"itemBgTemplate\"\n [ngTemplateOutletContext]=\"{bg: proc.preview}\">\n </ng-container>\n <div class=\"upload-progress\">\n <div class=\"upload-progress-num\">{{ proc.progress }}%</div>\n <div class=\"upload-progress-bar\" [ngStyle]=\"{width: proc.progress + '%'}\">\n\n </div>\n </div>\n </div>\n\n </div>\n @if (!disabled) {\n <btn class=\"upload-btn\" #uploadBtn [label]=\"buttonText\" (click)=\"input.click()\"></btn>\n }\n </div>\n</div>\n", styles: [".file-upload{--upload-bg-lightness: 85%;--upload-bg-opacity: 1;--upload-padding: 5px;--upload-border-width: 2px;--upload-border-color: rgba(0, 0, 0, .25);--upload-progress-bg: var(--primary-color, var(--mat-sys-primary, black));--upload-progress-text: var(--text-color, var(--mat-sys-on-primary, white));--upload-item-size: 120px;--upload-item-radius: 5px;--message-size: 20px;--message-color: #7e7e7e;--message-drop-color: #474747;--btn-distance: 3px;--btn-top-distance: var(--btn-distance);--btn-left-distance: var(--btn-distance);--btn-right-distance: var(--btn-distance);margin:5px 0}.file-upload *{box-sizing:border-box}.file-upload.disabled{--upload-bg-lightness: 75%}.file-upload input[type=file]{display:block;position:absolute;inset:0;opacity:0}.file-upload input[type=file]::file-selector-button{width:100%;height:100%}.file-upload .upload-input{width:100%;border:var(--upload-border-width) var(--upload-border-color) dashed;border-radius:var(--upload-item-radius);background-color:hsl(0,0%,var(--upload-bg-lightness),var(--upload-bg-opacity));transition:.2s;flex-wrap:wrap;position:relative;padding:var(--upload-padding)}.file-upload .upload-input .upload-message{position:absolute;display:flex;align-items:center;justify-content:center;width:100%;height:100%;top:0;left:0;pointer-events:none;font-size:var(--message-size);color:var(--message-color);transition:.2s}.file-upload .upload-input .upload-message.has-value{display:none}.file-upload .upload-input .upload-container{position:relative;pointer-events:none;min-height:var(--upload-item-size);display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.file-upload .upload-input .upload-item{position:relative;pointer-events:auto;width:var(--upload-item-size);height:var(--upload-item-size);border-radius:var(--upload-item-radius);border:2px solid white;overflow:hidden;display:flex;align-items:center;justify-content:center}.file-upload .upload-input .upload-item-bg{background:#fff center center no-repeat;background-size:cover;position:absolute;inset:0}.file-upload .upload-input .upload-item-bg div{width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.file-upload .upload-input .upload-item-bg img{max-width:100%;max-height:100%;object-fit:contain;background:#ffffffbf}.file-upload .upload-input .upload-progress{position:relative;width:90%;height:15px;border:1px solid darkgrey;background:#ffffff80}.file-upload .upload-input .upload-progress-bar{position:absolute;height:15px;background:var(--upload-progress-bg);top:0}.file-upload .upload-input .upload-progress-num{position:relative;z-index:1;font-size:12px;line-height:15px;text-align:center;color:var(--upload-progress-text)}.file-upload .upload-input.drop-allowed{--upload-bg-lightness: 95%}.file-upload .upload-input.drop-allowed .upload-message{color:var(--message-drop-color)}.file-upload .upload-btn{position:relative;margin-top:5px;width:fit-content;display:block}.file-upload .remove-item-btn{position:absolute;top:var(--btn-top-distance);right:var(--btn-right-distance)}.file-upload .download-item-btn{position:absolute;top:var(--btn-top-distance);left:var(--btn-left-distance)}\n"] }]
|
|
8417
8424
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
8418
8425
|
type: Inject,
|
|
8419
8426
|
args: [API_SERVICE]
|
|
@@ -8858,6 +8865,10 @@ class NgxUtilsModule {
|
|
|
8858
8865
|
provide: SOCKET_IO_PATH,
|
|
8859
8866
|
useValue: (!config ? null : config.socketPath) ?? "socket.io",
|
|
8860
8867
|
},
|
|
8868
|
+
{
|
|
8869
|
+
provide: STATIC_SCHEMAS,
|
|
8870
|
+
useValue: (!config ? null : config.staticSchemas) ?? {},
|
|
8871
|
+
},
|
|
8861
8872
|
{
|
|
8862
8873
|
provide: APP_INITIALIZER,
|
|
8863
8874
|
useFactory: (!config ? null : config.initializeApp) || loadConfig,
|
|
@@ -8940,5 +8951,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
8940
8951
|
* Generated bundle index. Do not edit.
|
|
8941
8952
|
*/
|
|
8942
8953
|
|
|
8943
|
-
export { API_SERVICE, APP_BASE_URL, AUTH_SERVICE, AclService, AjaxRequestHandler, ApiService, ArrayUtils, AsyncMethodBase, AsyncMethodDirective, AsyncMethodTargetDirective, AuthGuard, BASE_CONFIG, BUTTON_TYPE, BackgroundDirective, BaseDialogService, BaseHttpClient, BaseHttpService, BaseToasterService, BtnComponent, BtnDefaultComponent, CONFIG_SERVICE, CacheService, CanvasColor, CanvasUtils, ChipsComponent, ChunkPipe, Circle, CloseBtnComponent, ComponentLoaderDirective, ComponentLoaderService, ConfigService, DIALOG_SERVICE, DateUtils, DragDropEventPlugin, DropListComponent, DropdownBoxComponent, DropdownContentDirective, DropdownDirective, DropdownToggleDirective, DynamicTableComponent, DynamicTableTemplateDirective, ERROR_HANDLER, EXPRESS_REQUEST, EntriesPipe, ErrorHandlerService, EventsService, ExtraItemPropertiesPipe, FactoryDependencies, FakeModuleComponent, FileSystemEntry, FileUtils, FilterPipe, FindPipe, ForbiddenZone, FormatNumberPipe, FormatterService, GenericValue, GetOffsetPipe, GetTypePipe, GetValuePipe, GlobalTemplateDirective, GlobalTemplatePipe, GlobalTemplateService, GroupByPipe, ICON_MAP, ICON_SERVICE, ICON_TYPE, IConfiguration, IconComponent, IconDefaultComponent, IconDirective, IconService, IncludesPipe, Initializer, InteractiveCanvasComponent, InteractiveCircleComponent, InteractiveItemComponent, InteractiveRectComponent, IsTypePipe, JSONfn, JoinPipe, KeysPipe, LANGUAGE_SERVICE, LanguageService, LoaderUtils, LocalHttpService, MapPipe, MathUtils, MaxPipe, MinPipe, NgxTemplateOutletDirective, NgxUtilsModule, OPTIONS_TOKEN, ObjectType, ObjectUtils, ObservableUtils, OpenApiService, PROMISE_SERVICE, PaginationDirective, PaginationItemContext, PaginationItemDirective, PaginationMenuComponent, Point, PopPipe, PromiseService, RESIZE_DELAY, RESIZE_STRATEGY, ROOT_ELEMENT, Rect, ReducePipe, ReflectUtils, RemapPipe, ReplacePipe, ResizeEventPlugin, ResourceIfContext, ResourceIfDirective, ReversePipe, RoundPipe, SCRIPT_PARAMS, SafeHtmlPipe, ScrollEventPlugin, SetUtils, ShiftPipe, SocketClient, SocketService, SplitPipe, StateService, StaticAuthService, StaticLanguageService, StickyClassDirective, StickyDirective, StorageMode, StorageService, StringUtils, TOASTER_SERVICE, TabsComponent, TabsItemDirective, TabsTemplateDirective, TimerUtils, TranslatePipe, TranslatedUrlSerializer, UniqueUtils, UniversalService, UnorderedListComponent, UnorderedListItemDirective, UnorderedListTemplateDirective, UploadComponent, ValuedPromise, ValuesPipe, Vector, WASI_IMPLEMENTATION, WasmService, cachedFactory, cancelablePromise, checkTransitions, computedPrevious, cssStyles, cssVariables, getComponentDef, getCssVariables, getRoot, hashCode, impatientPromise, isBrowser, parseSelector, provideEntryComponents, provideWithOptions, selectorMatchesList, switchClass };
|
|
8954
|
+
export { API_SERVICE, APP_BASE_URL, AUTH_SERVICE, AclService, AjaxRequestHandler, ApiService, ArrayUtils, AsyncMethodBase, AsyncMethodDirective, AsyncMethodTargetDirective, AuthGuard, BASE_CONFIG, BUTTON_TYPE, BackgroundDirective, BaseDialogService, BaseHttpClient, BaseHttpService, BaseToasterService, BtnComponent, BtnDefaultComponent, CONFIG_SERVICE, CacheService, CanvasColor, CanvasUtils, ChipsComponent, ChunkPipe, Circle, CloseBtnComponent, ComponentLoaderDirective, ComponentLoaderService, ConfigService, DIALOG_SERVICE, DateUtils, DragDropEventPlugin, DropListComponent, DropdownBoxComponent, DropdownContentDirective, DropdownDirective, DropdownToggleDirective, DynamicTableComponent, DynamicTableTemplateDirective, ERROR_HANDLER, EXPRESS_REQUEST, EntriesPipe, ErrorHandlerService, EventsService, ExtraItemPropertiesPipe, FactoryDependencies, FakeModuleComponent, FileSystemEntry, FileUtils, FilterPipe, FindPipe, ForbiddenZone, FormatNumberPipe, FormatterService, GenericValue, GetOffsetPipe, GetTypePipe, GetValuePipe, GlobalTemplateDirective, GlobalTemplatePipe, GlobalTemplateService, GroupByPipe, ICON_MAP, ICON_SERVICE, ICON_TYPE, IConfiguration, IconComponent, IconDefaultComponent, IconDirective, IconService, IncludesPipe, Initializer, InteractiveCanvasComponent, InteractiveCircleComponent, InteractiveItemComponent, InteractiveRectComponent, IsTypePipe, JSONfn, JoinPipe, KeysPipe, LANGUAGE_SERVICE, LanguageService, LoaderUtils, LocalHttpService, MapPipe, MathUtils, MaxPipe, MinPipe, NgxTemplateOutletDirective, NgxUtilsModule, OPTIONS_TOKEN, ObjectType, ObjectUtils, ObservableUtils, OpenApiService, PROMISE_SERVICE, PaginationDirective, PaginationItemContext, PaginationItemDirective, PaginationMenuComponent, Point, PopPipe, PromiseService, RESIZE_DELAY, RESIZE_STRATEGY, ROOT_ELEMENT, Rect, ReducePipe, ReflectUtils, RemapPipe, ReplacePipe, ResizeEventPlugin, ResourceIfContext, ResourceIfDirective, ReversePipe, RoundPipe, SCRIPT_PARAMS, STATIC_SCHEMAS, SafeHtmlPipe, ScrollEventPlugin, SetUtils, ShiftPipe, SocketClient, SocketService, SplitPipe, StateService, StaticAuthService, StaticLanguageService, StickyClassDirective, StickyDirective, StorageMode, StorageService, StringUtils, TOASTER_SERVICE, TabsComponent, TabsItemDirective, TabsTemplateDirective, TimerUtils, TranslatePipe, TranslatedUrlSerializer, UniqueUtils, UniversalService, UnorderedListComponent, UnorderedListItemDirective, UnorderedListTemplateDirective, UploadComponent, ValuedPromise, ValuesPipe, Vector, WASI_IMPLEMENTATION, WasmService, cachedFactory, cancelablePromise, checkTransitions, computedPrevious, cssStyles, cssVariables, getComponentDef, getCssVariables, getRoot, hashCode, impatientPromise, isBrowser, parseSelector, provideEntryComponents, provideWithOptions, selectorMatchesList, switchClass };
|
|
8944
8955
|
//# sourceMappingURL=stemy-ngx-utils.mjs.map
|