202 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			202 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
/**
 | 
						|
 * @license Angular v17.0.8
 | 
						|
 * (c) 2010-2022 Google LLC. https://angular.io/
 | 
						|
 * License: MIT
 | 
						|
 */
 | 
						|
 | 
						|
import { CompilerConfig, ResourceLoader } from '@angular/compiler';
 | 
						|
import * as i0 from '@angular/core';
 | 
						|
import { Compiler, ViewEncapsulation, Injector, createPlatformFactory, platformCore, COMPILER_OPTIONS, CompilerFactory, Injectable, PLATFORM_ID, ɵglobal, Version } from '@angular/core';
 | 
						|
import { ɵPLATFORM_BROWSER_ID } from '@angular/common';
 | 
						|
import { ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS } from '@angular/platform-browser';
 | 
						|
 | 
						|
const COMPILER_PROVIDERS = [{ provide: Compiler, useFactory: () => new Compiler() }];
 | 
						|
/**
 | 
						|
 * @publicApi
 | 
						|
 *
 | 
						|
 * @deprecated
 | 
						|
 * Ivy JIT mode doesn't require accessing this symbol.
 | 
						|
 * See [JIT API changes due to ViewEngine deprecation](guide/deprecations#jit-api-changes) for
 | 
						|
 * additional context.
 | 
						|
 */
 | 
						|
class JitCompilerFactory {
 | 
						|
    /** @internal */
 | 
						|
    constructor(defaultOptions) {
 | 
						|
        const compilerOptions = {
 | 
						|
            defaultEncapsulation: ViewEncapsulation.Emulated,
 | 
						|
        };
 | 
						|
        this._defaultOptions = [compilerOptions, ...defaultOptions];
 | 
						|
    }
 | 
						|
    createCompiler(options = []) {
 | 
						|
        const opts = _mergeOptions(this._defaultOptions.concat(options));
 | 
						|
        const injector = Injector.create({
 | 
						|
            providers: [
 | 
						|
                COMPILER_PROVIDERS, {
 | 
						|
                    provide: CompilerConfig,
 | 
						|
                    useFactory: () => {
 | 
						|
                        return new CompilerConfig({
 | 
						|
                            defaultEncapsulation: opts.defaultEncapsulation,
 | 
						|
                            preserveWhitespaces: opts.preserveWhitespaces,
 | 
						|
                        });
 | 
						|
                    },
 | 
						|
                    deps: []
 | 
						|
                },
 | 
						|
                opts.providers
 | 
						|
            ]
 | 
						|
        });
 | 
						|
        return injector.get(Compiler);
 | 
						|
    }
 | 
						|
}
 | 
						|
function _mergeOptions(optionsArr) {
 | 
						|
    return {
 | 
						|
        defaultEncapsulation: _lastDefined(optionsArr.map(options => options.defaultEncapsulation)),
 | 
						|
        providers: _mergeArrays(optionsArr.map(options => options.providers)),
 | 
						|
        preserveWhitespaces: _lastDefined(optionsArr.map(options => options.preserveWhitespaces)),
 | 
						|
    };
 | 
						|
}
 | 
						|
function _lastDefined(args) {
 | 
						|
    for (let i = args.length - 1; i >= 0; i--) {
 | 
						|
        if (args[i] !== undefined) {
 | 
						|
            return args[i];
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return undefined;
 | 
						|
}
 | 
						|
function _mergeArrays(parts) {
 | 
						|
    const result = [];
 | 
						|
    parts.forEach((part) => part && result.push(...part));
 | 
						|
    return result;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * A platform that included corePlatform and the compiler.
 | 
						|
 *
 | 
						|
 * @publicApi
 | 
						|
 */
 | 
						|
const platformCoreDynamic = createPlatformFactory(platformCore, 'coreDynamic', [
 | 
						|
    { provide: COMPILER_OPTIONS, useValue: {}, multi: true },
 | 
						|
    { provide: CompilerFactory, useClass: JitCompilerFactory, deps: [COMPILER_OPTIONS] },
 | 
						|
]);
 | 
						|
 | 
						|
class ResourceLoaderImpl extends ResourceLoader {
 | 
						|
    get(url) {
 | 
						|
        let resolve;
 | 
						|
        let reject;
 | 
						|
        const promise = new Promise((res, rej) => {
 | 
						|
            resolve = res;
 | 
						|
            reject = rej;
 | 
						|
        });
 | 
						|
        const xhr = new XMLHttpRequest();
 | 
						|
        xhr.open('GET', url, true);
 | 
						|
        xhr.responseType = 'text';
 | 
						|
        xhr.onload = function () {
 | 
						|
            const response = xhr.response;
 | 
						|
            let status = xhr.status;
 | 
						|
            // fix status code when it is 0 (0 status is undocumented).
 | 
						|
            // Occurs when accessing file resources or on Android 4.1 stock browser
 | 
						|
            // while retrieving files from application cache.
 | 
						|
            if (status === 0) {
 | 
						|
                status = response ? 200 : 0;
 | 
						|
            }
 | 
						|
            if (200 <= status && status <= 300) {
 | 
						|
                resolve(response);
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                reject(`Failed to load ${url}`);
 | 
						|
            }
 | 
						|
        };
 | 
						|
        xhr.onerror = function () {
 | 
						|
            reject(`Failed to load ${url}`);
 | 
						|
        };
 | 
						|
        xhr.send();
 | 
						|
        return promise;
 | 
						|
    }
 | 
						|
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ResourceLoaderImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
 | 
						|
    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ResourceLoaderImpl }); }
 | 
						|
}
 | 
						|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ResourceLoaderImpl, decorators: [{
 | 
						|
            type: Injectable
 | 
						|
        }] });
 | 
						|
 | 
						|
/**
 | 
						|
 * @publicApi
 | 
						|
 */
 | 
						|
const INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS = [
 | 
						|
    ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS,
 | 
						|
    {
 | 
						|
        provide: COMPILER_OPTIONS,
 | 
						|
        useValue: { providers: [{ provide: ResourceLoader, useClass: ResourceLoaderImpl, deps: [] }] },
 | 
						|
        multi: true
 | 
						|
    },
 | 
						|
    { provide: PLATFORM_ID, useValue: ɵPLATFORM_BROWSER_ID },
 | 
						|
];
 | 
						|
 | 
						|
/**
 | 
						|
 * An implementation of ResourceLoader that uses a template cache to avoid doing an actual
 | 
						|
 * ResourceLoader.
 | 
						|
 *
 | 
						|
 * The template cache needs to be built and loaded into window.$templateCache
 | 
						|
 * via a separate mechanism.
 | 
						|
 *
 | 
						|
 * @publicApi
 | 
						|
 *
 | 
						|
 * @deprecated This was previously necessary in some cases to test AOT-compiled components with View
 | 
						|
 *     Engine, but is no longer since Ivy.
 | 
						|
 */
 | 
						|
class CachedResourceLoader extends ResourceLoader {
 | 
						|
    constructor() {
 | 
						|
        super();
 | 
						|
        this._cache = ɵglobal.$templateCache;
 | 
						|
        if (this._cache == null) {
 | 
						|
            throw new Error('CachedResourceLoader: Template cache was not found in $templateCache.');
 | 
						|
        }
 | 
						|
    }
 | 
						|
    get(url) {
 | 
						|
        if (this._cache.hasOwnProperty(url)) {
 | 
						|
            return Promise.resolve(this._cache[url]);
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            return Promise.reject('CachedResourceLoader: Did not find cached template for ' + url);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * @module
 | 
						|
 * @description
 | 
						|
 * Entry point for all public APIs of the platform-browser-dynamic package.
 | 
						|
 */
 | 
						|
/**
 | 
						|
 * @publicApi
 | 
						|
 */
 | 
						|
const VERSION = new Version('17.0.8');
 | 
						|
 | 
						|
/**
 | 
						|
 * @publicApi
 | 
						|
 *
 | 
						|
 * @deprecated This was previously necessary in some cases to test AOT-compiled components with View
 | 
						|
 *     Engine, but is no longer since Ivy.
 | 
						|
 | 
						|
 */
 | 
						|
const RESOURCE_CACHE_PROVIDER = [{ provide: ResourceLoader, useClass: CachedResourceLoader, deps: [] }];
 | 
						|
/**
 | 
						|
 * @publicApi
 | 
						|
 */
 | 
						|
const platformBrowserDynamic = createPlatformFactory(platformCoreDynamic, 'browserDynamic', INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS);
 | 
						|
 | 
						|
/**
 | 
						|
 * @module
 | 
						|
 * @description
 | 
						|
 * Entry point for all public APIs of this package.
 | 
						|
 */
 | 
						|
// This file only reexports content of the `src` folder. Keep it that way.
 | 
						|
 | 
						|
// This file is not used to build this module. It is only used during editing
 | 
						|
 | 
						|
/**
 | 
						|
 * Generated bundle index. Do not edit.
 | 
						|
 */
 | 
						|
 | 
						|
export { JitCompilerFactory, RESOURCE_CACHE_PROVIDER, VERSION, platformBrowserDynamic, INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS, platformCoreDynamic as ɵplatformCoreDynamic };
 | 
						|
//# sourceMappingURL=platform-browser-dynamic.mjs.map
 |