UNPKG

ngx-dynamic-hooks

Version:

Automatically insert live Angular components into a dynamic string of content (based on their selector or any pattern of your choice) and render the result in the DOM.

24 lines 6.86 kB
export const regexes = {}; // General const variableName = '[a-zA-Z_$]+[a-zA-Z0-9_$]*'; const attributeName = '[a-zA-Z$\\-_:][a-zA-Z$\\-_:0-9\\.]*'; // Attribute regex regexes.attributeNameNoBracketsRegex = '(' + attributeName + ')'; regexes.attributeNameBracketsRegex = '\\[(' + attributeName + ')\\]'; regexes.attributeNameRoundBracketsRegex = '\\((' + attributeName + ')\\)'; regexes.attributeNameRegex = '(?:' + regexes.attributeNameNoBracketsRegex + '|' + regexes.attributeNameBracketsRegex + '|' + regexes.attributeNameRoundBracketsRegex + ')'; regexes.attributeValueDoubleQuotesRegex = '\"((?:\\\\.|[^\"])*?)\"'; // Clever bit of regex to allow escaped chars in strings: https://stackoverflow.com/a/1016356/3099523 regexes.attributeValueSingleQuotesRegex = '\'((?:\\\\.|[^\'])*?)\''; // Context var regex examples: https://regex101.com/r/zSbY7M/4 // Supports the dot notation, the [] notation as well as function calls () for building variable paths regexes.variablePathDotNotation = '\\.' + variableName; regexes.variableBracketsNotation = '\\[[^\\]]*\\]'; // Relies on nested '[]'brackets being encoded regexes.variablePathFunctionCall = '\\([^\\)]*\\)'; // Relies on nested '()'-brackets being encoded. regexes.variablePathPartRegex = '(?:' + regexes.variablePathDotNotation + '|' + regexes.variableBracketsNotation + '|' + regexes.variablePathFunctionCall + ')'; regexes.contextVariableRegex = 'context' + regexes.variablePathPartRegex + '*'; regexes.placeholderVariablePathDotNotation = '\\@@@cxtDot@@@' + variableName; regexes.placeholderVariableBracketsNotation = '@@@cxtOpenSquareBracket@@@[^\\]]*@@@cxtCloseSquareBracket@@@'; regexes.placeholderVariablePathFunctionCall = '@@@cxtOpenRoundBracket@@@[^\\)]*@@@cxtCloseRoundBracket@@@'; regexes.placeholderVariablePathPartRegex = '(?:' + regexes.placeholderVariablePathDotNotation + '|' + regexes.placeholderVariableBracketsNotation + '|' + regexes.placeholderVariablePathFunctionCall + ')'; regexes.placeholderContextVariableRegex = '__CXT__' + regexes.placeholderVariablePathPartRegex + '*'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXhlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWhvb2tzL3NyYy9saWIvY29uc3RhbnRzL3JlZ2V4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQztBQUUvQixVQUFVO0FBQ1YsTUFBTSxZQUFZLEdBQUcsMkJBQTJCLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcscUNBQXFDLENBQUM7QUFFNUQsa0JBQWtCO0FBQ2xCLE9BQU8sQ0FBQyw0QkFBNEIsR0FBRyxHQUFHLEdBQUcsYUFBYSxHQUFHLEdBQUcsQ0FBQztBQUNqRSxPQUFPLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxHQUFHLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFDckUsT0FBTyxDQUFDLCtCQUErQixHQUFHLE1BQU0sR0FBRyxhQUFhLEdBQUcsTUFBTSxDQUFDO0FBQzFFLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsMEJBQTBCLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsR0FBRyxHQUFHLENBQUM7QUFDM0ssT0FBTyxDQUFDLCtCQUErQixHQUFHLHlCQUF5QixDQUFDLENBQUkscUdBQXFHO0FBQzdLLE9BQU8sQ0FBQywrQkFBK0IsR0FBRyx5QkFBeUIsQ0FBQztBQUVwRSw4REFBOEQ7QUFDOUQsc0dBQXNHO0FBQ3RHLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLEdBQUcsWUFBWSxDQUFDO0FBQ3ZELE9BQU8sQ0FBQyx3QkFBd0IsR0FBRyxlQUFlLENBQUMsQ0FBQyw4Q0FBOEM7QUFDbEcsT0FBTyxDQUFDLHdCQUF3QixHQUFHLGVBQWUsQ0FBQyxDQUFDLGdEQUFnRDtBQUNwRyxPQUFPLENBQUMscUJBQXFCLEdBQUcsS0FBSyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxDQUFDO0FBQ2hLLE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztBQUUvRSxPQUFPLENBQUMsa0NBQWtDLEdBQUcsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO0FBQzdFLE9BQU8sQ0FBQyxtQ0FBbUMsR0FBRyw4REFBOEQsQ0FBQztBQUM3RyxPQUFPLENBQUMsbUNBQW1DLEdBQUcsNERBQTRELENBQUM7QUFDM0csT0FBTyxDQUFDLGdDQUFnQyxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUMsa0NBQWtDLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxtQ0FBbUMsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLG1DQUFtQyxHQUFHLEdBQUcsQ0FBQztBQUM1TSxPQUFPLENBQUMsK0JBQStCLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsR0FBRyxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcmVnZXhlczogYW55ID0ge307XG5cbi8vIEdlbmVyYWxcbmNvbnN0IHZhcmlhYmxlTmFtZSA9ICdbYS16QS1aXyRdK1thLXpBLVowLTlfJF0qJztcbmNvbnN0IGF0dHJpYnV0ZU5hbWUgPSAnW2EtekEtWiRcXFxcLV86XVthLXpBLVokXFxcXC1fOjAtOVxcXFwuXSonO1xuXG4vLyBBdHRyaWJ1dGUgcmVnZXhcbnJlZ2V4ZXMuYXR0cmlidXRlTmFtZU5vQnJhY2tldHNSZWdleCA9ICcoJyArIGF0dHJpYnV0ZU5hbWUgKyAnKSc7XG5yZWdleGVzLmF0dHJpYnV0ZU5hbWVCcmFja2V0c1JlZ2V4ID0gJ1xcXFxbKCcgKyBhdHRyaWJ1dGVOYW1lICsgJylcXFxcXSc7XG5yZWdleGVzLmF0dHJpYnV0ZU5hbWVSb3VuZEJyYWNrZXRzUmVnZXggPSAnXFxcXCgoJyArIGF0dHJpYnV0ZU5hbWUgKyAnKVxcXFwpJztcbnJlZ2V4ZXMuYXR0cmlidXRlTmFtZVJlZ2V4ID0gJyg/OicgKyByZWdleGVzLmF0dHJpYnV0ZU5hbWVOb0JyYWNrZXRzUmVnZXggKyAnfCcgKyByZWdleGVzLmF0dHJpYnV0ZU5hbWVCcmFja2V0c1JlZ2V4ICsgJ3wnICsgcmVnZXhlcy5hdHRyaWJ1dGVOYW1lUm91bmRCcmFja2V0c1JlZ2V4ICsgJyknO1xucmVnZXhlcy5hdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3Rlc1JlZ2V4ID0gJ1xcXCIoKD86XFxcXFxcXFwufFteXFxcIl0pKj8pXFxcIic7ICAgIC8vIENsZXZlciBiaXQgb2YgcmVnZXggdG8gYWxsb3cgZXNjYXBlZCBjaGFycyBpbiBzdHJpbmdzOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTAxNjM1Ni8zMDk5NTIzXG5yZWdleGVzLmF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVzUmVnZXggPSAnXFwnKCg/OlxcXFxcXFxcLnxbXlxcJ10pKj8pXFwnJztcblxuLy8gQ29udGV4dCB2YXIgcmVnZXggZXhhbXBsZXM6IGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvelNiWTdNLzRcbi8vIFN1cHBvcnRzIHRoZSBkb3Qgbm90YXRpb24sIHRoZSBbXSBub3RhdGlvbiBhcyB3ZWxsIGFzIGZ1bmN0aW9uIGNhbGxzICgpIGZvciBidWlsZGluZyB2YXJpYWJsZSBwYXRoc1xucmVnZXhlcy52YXJpYWJsZVBhdGhEb3ROb3RhdGlvbiA9ICdcXFxcLicgKyB2YXJpYWJsZU5hbWU7XG5yZWdleGVzLnZhcmlhYmxlQnJhY2tldHNOb3RhdGlvbiA9ICdcXFxcW1teXFxcXF1dKlxcXFxdJzsgLy8gUmVsaWVzIG9uIG5lc3RlZCAnW10nYnJhY2tldHMgYmVpbmcgZW5jb2RlZFxucmVnZXhlcy52YXJpYWJsZVBhdGhGdW5jdGlvbkNhbGwgPSAnXFxcXChbXlxcXFwpXSpcXFxcKSc7IC8vIFJlbGllcyBvbiBuZXN0ZWQgJygpJy1icmFja2V0cyBiZWluZyBlbmNvZGVkLlxucmVnZXhlcy52YXJpYWJsZVBhdGhQYXJ0UmVnZXggPSAnKD86JyArIHJlZ2V4ZXMudmFyaWFibGVQYXRoRG90Tm90YXRpb24gKyAnfCcgKyByZWdleGVzLnZhcmlhYmxlQnJhY2tldHNOb3RhdGlvbiArICd8JyArIHJlZ2V4ZXMudmFyaWFibGVQYXRoRnVuY3Rpb25DYWxsICsgJyknO1xucmVnZXhlcy5jb250ZXh0VmFyaWFibGVSZWdleCA9ICdjb250ZXh0JyArIHJlZ2V4ZXMudmFyaWFibGVQYXRoUGFydFJlZ2V4ICsgJyonO1xuXG5yZWdleGVzLnBsYWNlaG9sZGVyVmFyaWFibGVQYXRoRG90Tm90YXRpb24gPSAnXFxcXEBAQGN4dERvdEBAQCcgKyB2YXJpYWJsZU5hbWU7XG5yZWdleGVzLnBsYWNlaG9sZGVyVmFyaWFibGVCcmFja2V0c05vdGF0aW9uID0gJ0BAQGN4dE9wZW5TcXVhcmVCcmFja2V0QEBAW15cXFxcXV0qQEBAY3h0Q2xvc2VTcXVhcmVCcmFja2V0QEBAJztcbnJlZ2V4ZXMucGxhY2Vob2xkZXJWYXJpYWJsZVBhdGhGdW5jdGlvbkNhbGwgPSAnQEBAY3h0T3BlblJvdW5kQnJhY2tldEBAQFteXFxcXCldKkBAQGN4dENsb3NlUm91bmRCcmFja2V0QEBAJztcbnJlZ2V4ZXMucGxhY2Vob2xkZXJWYXJpYWJsZVBhdGhQYXJ0UmVnZXggPSAnKD86JyArIHJlZ2V4ZXMucGxhY2Vob2xkZXJWYXJpYWJsZVBhdGhEb3ROb3RhdGlvbiArICd8JyArIHJlZ2V4ZXMucGxhY2Vob2xkZXJWYXJpYWJsZUJyYWNrZXRzTm90YXRpb24gKyAnfCcgKyByZWdleGVzLnBsYWNlaG9sZGVyVmFyaWFibGVQYXRoRnVuY3Rpb25DYWxsICsgJyknO1xucmVnZXhlcy5wbGFjZWhvbGRlckNvbnRleHRWYXJpYWJsZVJlZ2V4ID0gJ19fQ1hUX18nICsgcmVnZXhlcy5wbGFjZWhvbGRlclZhcmlhYmxlUGF0aFBhcnRSZWdleCArICcqJzsiXX0=