Todos los componentes del NIVEL 2 ya están implementados correctamente: - ✅ Notification Bar (#49) - ✅ Navbar (#50) - ✅ Hero Section (#51) - ✅ Sidebar (#52) - ✅ Footer (#53) Solo se actualizó notification-bar.css para usar variables CSS. Próximo paso: NIVEL 3 (Refinamientos visuales) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
12 lines
1.3 KiB
Plaintext
12 lines
1.3 KiB
Plaintext
define(['underscore','domReady!'],function(_){'use strict';var context=require.s.contexts._,execCb=context.execCb,registry=context.registry,callbacks=[],retries=10,updateDelay=1,ready,update;function isSubscribed(callback){return!!_.findWhere(callbacks,callback);}
|
|
function isRejected(module){return registry[module.id]&&(registry[module.id].inited||registry[module.id].error);}
|
|
function isPathFallback(module){return registry[module.id]&®istry[module.id].events.error;}
|
|
function isPending(module){if(!module.depCount){return false;}
|
|
return module.depCount>_.filter(module.depMaps,isRejected).length+_.filter(module.depMaps,isPathFallback).length;}
|
|
function hasPending(){return _.some(registry,isPending);}
|
|
function isReady(){return ready&&!hasPending();}
|
|
function invoke(callback){callback.handler.call(callback.ctx);}
|
|
function resolve(){ready=true;callbacks.splice(0).forEach(invoke);}
|
|
function tick(){ready=false;update(retries);}
|
|
function subscribe(handler,ctx){var callback={handler:handler,ctx:ctx};if(!isSubscribed(callback)){callbacks.push(callback);if(isReady()){_.defer(tick);}}}
|
|
update=_.debounce(function(retry){if(!hasPending()){retry?update(--retry):resolve();}},updateDelay);context.execCb=function(){var exported=execCb.apply(context,arguments);tick();return exported;};return subscribe;}); |