@stemy/ngx-utils 19.6.6 → 19.6.7
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.
|
@@ -3052,10 +3052,7 @@ class BaseHttpService {
|
|
|
3052
3052
|
}
|
|
3053
3053
|
handleUnauthorizedError(absoluteUrl, options, reject) {
|
|
3054
3054
|
reject();
|
|
3055
|
-
if (BaseHttpService.failedRequests.length > 1)
|
|
3056
|
-
return;
|
|
3057
|
-
}
|
|
3058
|
-
if (this.universal.isServer)
|
|
3055
|
+
if (BaseHttpService.failedRequests.length > 1 || this.universal.isServer)
|
|
3059
3056
|
return;
|
|
3060
3057
|
console.log("User auth error", absoluteUrl, options);
|
|
3061
3058
|
}
|
|
@@ -8405,7 +8402,7 @@ class UploadComponent {
|
|
|
8405
8402
|
provide: NG_VALUE_ACCESSOR,
|
|
8406
8403
|
useExisting: forwardRef(() => UploadComponent),
|
|
8407
8404
|
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));--
|
|
8405
|
+
}], 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
8406
|
}
|
|
8410
8407
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UploadComponent, decorators: [{
|
|
8411
8408
|
type: Component,
|
|
@@ -8413,7 +8410,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
8413
8410
|
provide: NG_VALUE_ACCESSOR,
|
|
8414
8411
|
useExisting: forwardRef(() => UploadComponent),
|
|
8415
8412
|
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));--
|
|
8413
|
+
}], 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
8414
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
8418
8415
|
type: Inject,
|
|
8419
8416
|
args: [API_SERVICE]
|