commit
ffed38ebfb
|
@ -17,6 +17,7 @@ const appConfig = {
|
||||||
'plugin:@typescript-eslint/eslint-recommended',
|
'plugin:@typescript-eslint/eslint-recommended',
|
||||||
'plugin:@typescript-eslint/recommended',
|
'plugin:@typescript-eslint/recommended',
|
||||||
'plugin:@angular-eslint/recommended',
|
'plugin:@angular-eslint/recommended',
|
||||||
|
'plugin:@angular-eslint/template/process-inline-templates',
|
||||||
'plugin:promise/recommended',
|
'plugin:promise/recommended',
|
||||||
'plugin:jsdoc/recommended',
|
'plugin:jsdoc/recommended',
|
||||||
'plugin:deprecation/recommended',
|
'plugin:deprecation/recommended',
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
// (C) Copyright 2015 Moodle Pty Ltd.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
import { HammerGestureConfig } from '@angular/platform-browser';
|
|
||||||
import { DIRECTION_ALL } from 'hammerjs';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Application HammerJS config.
|
|
||||||
*/
|
|
||||||
export class CoreHammerGestureConfig extends HammerGestureConfig {
|
|
||||||
|
|
||||||
overrides = {
|
|
||||||
swipe: { direction: DIRECTION_ALL },
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -52,7 +52,7 @@ const BUTTON_HIDDEN_CLASS = 'core-navbar-button-hidden';
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'core-navbar-buttons',
|
selector: 'core-navbar-buttons',
|
||||||
template: '<ng-content></ng-content><template #contextMenuContainer></template>',
|
template: '<ng-content></ng-content><template #contextMenuContainer>-</template>',
|
||||||
styleUrls: ['navbar-buttons.scss'],
|
styleUrls: ['navbar-buttons.scss'],
|
||||||
})
|
})
|
||||||
export class CoreNavBarButtonsComponent implements OnInit, OnDestroy {
|
export class CoreNavBarButtonsComponent implements OnInit, OnDestroy {
|
||||||
|
@ -62,7 +62,7 @@ export class CoreNavBarButtonsComponent implements OnInit, OnDestroy {
|
||||||
// If the hidden input is true, hide all buttons.
|
// If the hidden input is true, hide all buttons.
|
||||||
// eslint-disable-next-line @angular-eslint/no-input-rename
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
||||||
@Input('hidden') set hidden(value: boolean) {
|
@Input('hidden') set hidden(value: boolean) {
|
||||||
if (typeof value == 'string' && value == '') {
|
if (typeof value === 'string' && value === '') {
|
||||||
value = true;
|
value = true;
|
||||||
}
|
}
|
||||||
this.allButtonsHidden = value;
|
this.allButtonsHidden = value;
|
||||||
|
|
|
@ -41,7 +41,7 @@ import { CoreTabsComponent } from './tabs';
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'core-tab',
|
selector: 'core-tab',
|
||||||
template: '<ng-container *ngIf="loaded && template" [ngTemplateOutlet]="template"></ng-container>',
|
template: '<ng-container *ngIf="loaded && template" [ngTemplateOutlet]="template" />',
|
||||||
})
|
})
|
||||||
export class CoreTabComponent implements OnInit, OnDestroy, CoreTabBase {
|
export class CoreTabComponent implements OnInit, OnDestroy, CoreTabBase {
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,9 @@
|
||||||
|
|
||||||
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
||||||
import { ApplicationInitStatus, Injector, NgModule, Type } from '@angular/core';
|
import { ApplicationInitStatus, Injector, NgModule, Type } from '@angular/core';
|
||||||
import { HammerModule, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
|
|
||||||
|
|
||||||
import { CoreApplicationInitStatus } from './classes/application-init-status';
|
import { CoreApplicationInitStatus } from './classes/application-init-status';
|
||||||
import { CoreFeaturesModule } from './features/features.module';
|
import { CoreFeaturesModule } from './features/features.module';
|
||||||
import { CoreHammerGestureConfig } from './classes/hammer-gesture-config';
|
|
||||||
import { CoreInterceptor } from './classes/interceptor';
|
import { CoreInterceptor } from './classes/interceptor';
|
||||||
import { getDatabaseProviders } from './services/database';
|
import { getDatabaseProviders } from './services/database';
|
||||||
import { getInitializerProviders } from './initializers';
|
import { getInitializerProviders } from './initializers';
|
||||||
|
@ -84,11 +82,9 @@ export const CORE_SERVICES: Type<unknown>[] = [
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
CoreFeaturesModule,
|
CoreFeaturesModule,
|
||||||
HammerModule,
|
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: HTTP_INTERCEPTORS, useClass: CoreInterceptor, multi: true },
|
{ provide: HTTP_INTERCEPTORS, useClass: CoreInterceptor, multi: true },
|
||||||
{ provide: HAMMER_GESTURE_CONFIG, useClass: CoreHammerGestureConfig },
|
|
||||||
{ provide: ApplicationInitStatus, useClass: CoreApplicationInitStatus, deps: [Injector] },
|
{ provide: ApplicationInitStatus, useClass: CoreApplicationInitStatus, deps: [Injector] },
|
||||||
...getDatabaseProviders(),
|
...getDatabaseProviders(),
|
||||||
...getInitializerProviders(),
|
...getInitializerProviders(),
|
||||||
|
|
|
@ -23,11 +23,12 @@ import { CoreConstants } from '@/core/constants';
|
||||||
import { CoreError } from '@classes/errors/error';
|
import { CoreError } from '@classes/errors/error';
|
||||||
|
|
||||||
import { CoreLogger } from '@singletons/logger';
|
import { CoreLogger } from '@singletons/logger';
|
||||||
import { makeSingleton, File, Zip, WebView } from '@singletons';
|
import { makeSingleton, File, WebView } from '@singletons';
|
||||||
import { CoreFileEntry } from '@services/file-helper';
|
import { CoreFileEntry } from '@services/file-helper';
|
||||||
import { CoreText } from '@singletons/text';
|
import { CoreText } from '@singletons/text';
|
||||||
import { CorePlatform } from '@services/platform';
|
import { CorePlatform } from '@services/platform';
|
||||||
import { CorePath } from '@singletons/path';
|
import { CorePath } from '@singletons/path';
|
||||||
|
import { Zip } from '@features/native/plugins';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Progress event used when writing a file data into a file.
|
* Progress event used when writing a file data into a file.
|
||||||
|
@ -933,7 +934,7 @@ export class CoreFileProvider {
|
||||||
// If destFolder is not set, use same location as ZIP file. We need to use absolute paths (including basePath).
|
// If destFolder is not set, use same location as ZIP file. We need to use absolute paths (including basePath).
|
||||||
destFolder = this.addBasePathIfNeeded(destFolder || CoreMimetypeUtils.removeExtension(path));
|
destFolder = this.addBasePathIfNeeded(destFolder || CoreMimetypeUtils.removeExtension(path));
|
||||||
|
|
||||||
const result = await Zip.unzip(fileEntry.toURL(), destFolder, onProgress as unknown as Function);
|
const result = await Zip.unzip(fileEntry.toURL(), destFolder, onProgress);
|
||||||
|
|
||||||
if (result == -1) {
|
if (result == -1) {
|
||||||
throw new CoreError('Unzip failed.');
|
throw new CoreError('Unzip failed.');
|
||||||
|
|
Loading…
Reference in New Issue