function translate(load){
		var filename;

		//!steal-remove-start
		filename = getFilename(load.name);
		//!steal-remove-end

		var localLoader = this.localLoader || this,
			result = parse(load.source),
			tagName = result.tagName,
			texts = result.texts,
			types = result.types,
			froms = result.froms,
			normalize = function(str){
				return localLoader.normalize(str, module.id);
			},
			deps = [normalize("can-component")],
			ases = ["Component"],
			addDep = function(depName, isVirtual){
				deps.push(depName);
				if(isVirtual !== false) load.metadata.virtualDeps.push(depName);
			},
			stylePromise, templatePromise;

		load.metadata.virtualDeps = [];
		var defineVirtualModule = makeDefineVirtualModule(localLoader, load,
														  addDep, ases);

		// Define the template
		templatePromise = defineVirtualModule({
			condition: froms.template || froms.view || result.intermediate.length,
			arg: "view",
			name: "view",
			from: froms.template || froms.view,
			source: templateDefine(result, normalize, filename),
			metadata: {
				originalSource: load.source,
				importSpecifiers: getImportSpecifiers(result)
			}
		});

		// Define the ViewModel
		defineVirtualModule({
			condition: froms["view-model"] || texts["view-model"],
			arg: "ViewModel",
			name: "view-model",
			from: froms["view-model"],
			source: texts["view-model"]
		});

		// Define events
		defineVirtualModule({
			condition: froms.events || texts.events,
			arg: "events",
			name: "events",
			from: froms.events,
			source: texts.events
		});

		// Define helpers
		defineVirtualModule({
			condition: froms.helpers || texts.helpers,
			arg: "helpers",
			name: "helpers",
			from: froms.helpers,
			source: texts.helpers
		});

		// Define simple-helpers
		defineVirtualModule({
			condition: froms["simple-helpers"] || texts["simple-helpers"],
			arg: "simpleHelpers",
			name: "simple-helpers",
			from: froms["simple-helpers"],
			source: texts["simple-helpers"]
		});

		// Define the styles
		stylePromise = defineVirtualModule({
			condition: froms.style || texts.style,
			name: function(name){
				return name("style", types.style || "css") + "!"
			},
			address: function(address){
				return address("style", types.style);
			},
			source: function(){
				var styleText = texts.style;
				if(types.style === "less") {
					var styleText = tagName + " {\n" + texts.style + "}\n";
				}
				return styleText;
			},
			getLoad: function(styleName){
				var styleLoad = {};
				var normalizePromise = localLoader.normalize(styleName, load.name);
				var locatePromise = normalizePromise.then(function(name){
					styleName = name;
					styleLoad = { name: name, metadata: {} };
					return localLoader.locate(styleLoad);
				});

				return locatePromise.then(function(){
					return {
						name: styleName,
						metadata: styleLoad.metadata
					};
				});
			}
		}) || Promise.resolve();


		return Promise.all([
			stylePromise,
			templatePromise
		]).then(function(){
			return Promise.all(deps);
		}).then(function(deps){
			return "def" + "ine(" + JSON.stringify(deps) + ", function(" +
				ases.join(", ") + "){\n" +
				"\tvar __interop = function(m){if(m && m['default']) {return m['default'];}else if(m) return m;};\n\n" +
				"\tvar ViewModel = __interop(typeof ViewModel !== 'undefined' ? ViewModel : undefined);\n" +
				"\tvar ComponentConstructor = Component.extend({\n" +
				"\t\ttag: '" + tagName + "',\n" +
				"\t\tview: __interop(typeof view !== 'undefined' ? view : undefined),\n" +
				"\t\tViewModel: ViewModel,\n" +
				"\t\tevents: __interop(typeof events !== 'undefined' ? events : undefined),\n" +
				"\t\thelpers: __interop(typeof helpers !== 'undefined' ? helpers : undefined),\n" +
				"\t\tsimpleHelpers: __interop(typeof simpleHelpers !== 'undefined' ? simpleHelpers : undefined),\n" +
				"\t\tleakScope: " + result.leakScope + "\n" +
				"\t});\n\n" +
				"\treturn {\n" +
				"\t\tComponent: ComponentConstructor,\n" +
				"\t\tViewModel: ViewModel,\n" +
				"\t\tdefault: ComponentConstructor\n" +
				"\t};\n" +
				"});";
		});

	}
function translate(load){
		var filename;

		
		filename = getFilename(load.name);
		

		var localLoader = this.localLoader || this,
			result = parse(load.source),
			tagName = result.tagName,
			texts = result.texts,
			types = result.types,
			froms = result.froms,
			normalize = function(str){
				return localLoader.normalize(str, module.id);
			},
			deps = [normalize("can-component")],
			ases = ["Component"],
			addDep = function(depName, isVirtual){
				deps.push(depName);
				if(isVirtual !== false) load.metadata.virtualDeps.push(depName);
			},
			stylePromise, templatePromise;

		load.metadata.virtualDeps = [];
		var defineVirtualModule = makeDefineVirtualModule(localLoader, load,
														  addDep, ases);

		
		templatePromise = defineVirtualModule({
			condition: froms.template || froms.view || result.intermediate.length,
			arg: "view",
			name: "view",
			from: froms.template || froms.view,
			source: templateDefine(result, normalize, filename),
			metadata: {
				originalSource: load.source,
				importSpecifiers: getImportSpecifiers(result)
			}
		});

		
		defineVirtualModule({
			condition: froms["view-model"] || texts["view-model"],
			arg: "ViewModel",
			name: "view-model",
			from: froms["view-model"],
			source: texts["view-model"]
		});

		
		defineVirtualModule({
			condition: froms.events || texts.events,
			arg: "events",
			name: "events",
			from: froms.events,
			source: texts.events
		});

		
		defineVirtualModule({
			condition: froms.helpers || texts.helpers,
			arg: "helpers",
			name: "helpers",
			from: froms.helpers,
			source: texts.helpers
		});

		
		defineVirtualModule({
			condition: froms["simple-helpers"] || texts["simple-helpers"],
			arg: "simpleHelpers",
			name: "simple-helpers",
			from: froms["simple-helpers"],
			source: texts["simple-helpers"]
		});

		
		stylePromise = defineVirtualModule({
			condition: froms.style || texts.style,
			name: function(name){
				return name("style", types.style || "css") + "!"
			},
			address: function(address){
				return address("style", types.style);
			},
			source: function(){
				var styleText = texts.style;
				if(types.style === "less") {
					var styleText = tagName + " {\n" + texts.style + "}\n";
				}
				return styleText;
			},
			getLoad: function(styleName){
				var styleLoad = {};
				var normalizePromise = localLoader.normalize(styleName, load.name);
				var locatePromise = normalizePromise.then(function(name){
					styleName = name;
					styleLoad = { name: name, metadata: {} };
					return localLoader.locate(styleLoad);
				});

				return locatePromise.then(function(){
					return {
						name: styleName,
						metadata: styleLoad.metadata
					};
				});
			}
		}) || Promise.resolve();


		return Promise.all([
			stylePromise,
			templatePromise
		]).then(function(){
			return Promise.all(deps);
		}).then(function(deps){
			return "def" + "ine(" + JSON.stringify(deps) + ", function(" +
				ases.join(", ") + "){\n" +
				"\tvar __interop = function(m){if(m && m['default']) {return m['default'];}else if(m) return m;};\n\n" +
				"\tvar ViewModel = __interop(typeof ViewModel !== 'undefined' ? ViewModel : undefined);\n" +
				"\tvar ComponentConstructor = Component.extend({\n" +
				"\t\ttag: '" + tagName + "',\n" +
				"\t\tview: __interop(typeof view !== 'undefined' ? view : undefined),\n" +
				"\t\tViewModel: ViewModel,\n" +
				"\t\tevents: __interop(typeof events !== 'undefined' ? events : undefined),\n" +
				"\t\thelpers: __interop(typeof helpers !== 'undefined' ? helpers : undefined),\n" +
				"\t\tsimpleHelpers: __interop(typeof simpleHelpers !== 'undefined' ? simpleHelpers : undefined),\n" +
				"\t\tleakScope: " + result.leakScope + "\n" +
				"\t});\n\n" +
				"\treturn {\n" +
				"\t\tComponent: ComponentConstructor,\n" +
				"\t\tViewModel: ViewModel,\n" +
				"\t\tdefault: ComponentConstructor\n" +
				"\t};\n" +
				"});";
		});

	}
function translate ( load ) { var filename ; //!steal-remove-start filename = getFilename ( load . name ) ; //!steal-remove-end var localLoader = this . localLoader || this , result = parse ( load . source ) , tagName = result . tagName , texts = result . texts , types = result . types , froms = result . froms , normalize = function ( str ) { return localLoader . normalize ( str , module . id ) ; } , deps = [ normalize ( "can-component" ) ] , ases = [ "Component" ] , addDep = function ( depName , isVirtual ) { deps . push ( depName ) ; if ( isVirtual !== false ) load . metadata . virtualDeps . push ( depName ) ; } , stylePromise , templatePromise ; load . metadata . virtualDeps = [ ] ; var defineVirtualModule = makeDefineVirtualModule ( localLoader , load , addDep , ases ) ; // Define the template templatePromise = defineVirtualModule ( { condition : froms . template || froms . view || result . intermediate . length , arg : "view" , name : "view" , from : froms . template || froms . view , source : templateDefine ( result , normalize , filename ) , metadata : { originalSource : load . source , importSpecifiers : getImportSpecifiers ( result ) } } ) ; // Define the ViewModel defineVirtualModule ( { condition : froms [ "view-model" ] || texts [ "view-model" ] , arg : "ViewModel" , name : "view-model" , from : froms [ "view-model" ] , source : texts [ "view-model" ] } ) ; // Define events defineVirtualModule ( { condition : froms . events || texts . events , arg : "events" , name : "events" , from : froms . events , source : texts . events } ) ; // Define helpers defineVirtualModule ( { condition : froms . helpers || texts . helpers , arg : "helpers" , name : "helpers" , from : froms . helpers , source : texts . helpers } ) ; // Define simple-helpers defineVirtualModule ( { condition : froms [ "simple-helpers" ] || texts [ "simple-helpers" ] , arg : "simpleHelpers" , name : "simple-helpers" , from : froms [ "simple-helpers" ] , source : texts [ "simple-helpers" ] } ) ; // Define the styles stylePromise = defineVirtualModule ( { condition : froms . style || texts . style , name : function ( name ) { return name ( "style" , types . style || "css" ) + "!" } , address : function ( address ) { return address ( "style" , types . style ) ; } , source : function ( ) { var styleText = texts . style ; if ( types . style === "less" ) { var styleText = tagName + " {\n" + texts . style + "}\n" ; } return styleText ; } , getLoad : function ( styleName ) { var styleLoad = { } ; var normalizePromise = localLoader . normalize ( styleName , load . name ) ; var locatePromise = normalizePromise . then ( function ( name ) { styleName = name ; styleLoad = { name : name , metadata : { } } ; return localLoader . locate ( styleLoad ) ; } ) ; return locatePromise . then ( function ( ) { return { name : styleName , metadata : styleLoad . metadata } ; } ) ; } } ) || Promise . resolve ( ) ; return Promise . all ( [ stylePromise , templatePromise ] ) . then ( function ( ) { return Promise . all ( deps ) ; } ) . then ( function ( deps ) { return "def" + "ine(" + JSON . stringify ( deps ) + ", function(" + ases . join ( ", " ) + "){\n" + "\tvar __interop = function(m){if(m && m['default']) {return m['default'];}else if(m) return m;};\n\n" + "\tvar ViewModel = __interop(typeof ViewModel !== 'undefined' ? ViewModel : undefined);\n" + "\tvar ComponentConstructor = Component.extend({\n" + "\t\ttag: '" + tagName + "',\n" + "\t\tview: __interop(typeof view !== 'undefined' ? view : undefined),\n" + "\t\tViewModel: ViewModel,\n" + "\t\tevents: __interop(typeof events !== 'undefined' ? events : undefined),\n" + "\t\thelpers: __interop(typeof helpers !== 'undefined' ? helpers : undefined),\n" + "\t\tsimpleHelpers: __interop(typeof simpleHelpers !== 'undefined' ? simpleHelpers : undefined),\n" + "\t\tleakScope: " + result . leakScope + "\n" + "\t});\n\n" + "\treturn {\n" + "\t\tComponent: ComponentConstructor,\n" + "\t\tViewModel: ViewModel,\n" + "\t\tdefault: ComponentConstructor\n" + "\t};\n" + "});" ; } ) ; }
!steal-remove-end
!steal - remove - end