UNPKG

aurelia-bootstrap

Version:
58 lines (48 loc) 1.93 kB
/* */ define(['exports'], function (exports) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.viewsRequireLifecycle = viewsRequireLifecycle; var lifecycleOptionalBehaviors = exports.lifecycleOptionalBehaviors = ['focus', 'if', 'repeat', 'show', 'with']; function behaviorRequiresLifecycle(instruction) { var t = instruction.type; var name = t.elementName !== null ? t.elementName : t.attributeName; return lifecycleOptionalBehaviors.indexOf(name) === -1 && (t.handlesAttached || t.handlesBind || t.handlesCreated || t.handlesDetached || t.handlesUnbind) || t.viewFactory && viewsRequireLifecycle(t.viewFactory) || instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory); } function targetRequiresLifecycle(instruction) { var behaviors = instruction.behaviorInstructions; if (behaviors) { var i = behaviors.length; while (i--) { if (behaviorRequiresLifecycle(behaviors[i])) { return true; } } } return instruction.viewFactory && viewsRequireLifecycle(instruction.viewFactory); } function viewsRequireLifecycle(viewFactory) { if ('_viewsRequireLifecycle' in viewFactory) { return viewFactory._viewsRequireLifecycle; } viewFactory._viewsRequireLifecycle = false; if (viewFactory.viewFactory) { viewFactory._viewsRequireLifecycle = viewsRequireLifecycle(viewFactory.viewFactory); return viewFactory._viewsRequireLifecycle; } if (viewFactory.template.querySelector('.au-animate')) { viewFactory._viewsRequireLifecycle = true; return true; } for (var id in viewFactory.instructions) { if (targetRequiresLifecycle(viewFactory.instructions[id])) { viewFactory._viewsRequireLifecycle = true; return true; } } viewFactory._viewsRequireLifecycle = false; return false; } });