UNPKG

4.06 kBSource Map (JSON)View Raw
1{"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../src/utils/triggers.ts"],"names":[],"mappings":"OAKO,EAAE,OAAO,EAAE,MAAM,iBAAiB;AAEzC,IAAM,eAAe,GAAG;IACtB,KAAK,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;IACnC,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;CAC/B,CAAC;AAEF,8BAA8B,QAAgB,EAAE,OAA8B;IAA9B,uBAA8B,GAA9B,yBAA8B;IAC5E,IAAM,eAAe,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhD,EAAE,CAAC,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC;IACZ,CAAC;IAED,IAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;SAChD,GAAG,CAAC,UAAC,OAAe,IAAK,OAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAAC;SAC5C,GAAG,CAAC,UAAC,WAAqB;QACzB,IAAI,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACnD,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,IAAM,cAAc,GAAG,cAAc;SAClC,MAAM,CAAC,UAAC,WAAoB,IAAK,OAAA,WAAW,CAAC,QAAQ,EAAE,EAAtB,CAAsB,CAAC,CAAC;IAE5D,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,0DAA0D,CAAC;IACnE,CAAC;IAED,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,0EAA0E,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,cAAc,CAAC;AACxB,CAAC;AAED,iCAAiC,QAAkB,EAAE,MAAW,EAAE,QAAgB,EACjD,MAAgB,EAAE,MAAgB,EAAE,QAAkB;IACrF,IAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAM,SAAS,GAAU,EAAE,CAAC;IAE5B,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED,cAAc,CAAC,OAAO,CAAC,UAAC,OAAgB;QACtC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC;QACT,CAAC;QAED,SAAS,CAAC,IAAI,CACZ,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,EAC7C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,cAAQ,SAAS,CAAC,OAAO,CAAC,UAAC,aAAuB,IAAK,OAAA,aAAa,EAAE,EAAf,CAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC","sourcesContent":["/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\nimport { Renderer } from '@angular/core';\nimport { Trigger } from './trigger.class';\n\nconst DEFAULT_ALIASES = {\n hover: ['mouseenter', 'mouseleave'],\n focus: ['focusin', 'focusout']\n};\n\nexport function parseTriggers(triggers: string, aliases: any = DEFAULT_ALIASES): Trigger[] {\n const trimmedTriggers = (triggers || '').trim();\n\n if (trimmedTriggers.length === 0) {\n return [];\n }\n\n const parsedTriggers = trimmedTriggers.split(/\\s+/)\n .map((trigger: string) => trigger.split(':'))\n .map((triggerPair: string[]) => {\n let alias = aliases[triggerPair[0]] || triggerPair;\n return new Trigger(alias[0], alias[1]);\n });\n\n const manualTriggers = parsedTriggers\n .filter((triggerPair: Trigger) => triggerPair.isManual());\n\n if (manualTriggers.length > 1) {\n throw 'Triggers parse error: only one manual trigger is allowed';\n }\n\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw 'Triggers parse error: manual trigger can\\'t be mixed with other triggers';\n }\n\n return parsedTriggers;\n}\n\nexport function listenToTriggers(renderer: Renderer, target: any, triggers: string,\n showFn: Function, hideFn: Function, toggleFn: Function): Function {\n const parsedTriggers = parseTriggers(triggers);\n const listeners: any[] = [];\n\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return Function.prototype;\n }\n\n parsedTriggers.forEach((trigger: Trigger) => {\n if (trigger.open === trigger.close) {\n listeners.push(renderer.listen(target, trigger.open, toggleFn));\n return;\n }\n\n listeners.push(\n renderer.listen(target, trigger.open, showFn),\n renderer.listen(target, trigger.close, hideFn));\n });\n\n return () => { listeners.forEach((unsubscribeFn: Function) => unsubscribeFn()); };\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
\No newline at end of file