Skip to content

Instantly share code, notes, and snippets.

@Gaurav0
Last active May 8, 2020 17:54
Show Gist options
  • Save Gaurav0/19f3d8baa3fff404191d5ac3862355a9 to your computer and use it in GitHub Desktop.
Save Gaurav0/19f3d8baa3fff404191d5ac3862355a9 to your computer and use it in GitHub Desktop.
escape-css-helper
import Controller from '@ember/controller';
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle';
theColor = 'red';
}
import { helper } from '@ember/component/helper';
import { htmlSafe, isHTMLSafe } from '@ember/string';
function escapeCss([stringToEscape]) {
let cssEscapedString = CSS.escape(stringToEscape);
let htmlSafeString = htmlSafe(cssEscapedString);
return htmlSafeString;
}
// from https://github.com/romulomachado/ember-cli-string-helpers/blob/master/addon/-private/create-string-helper.js
function wrapFunction(stringFunction) {
return function([string]) {
if (isHTMLSafe(string)) {
string = string.string;
}
string = string || '';
return stringFunction([string]);
};
}
export default helper(wrapFunction(escapeCss));
<h1>Welcome to {{this.appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
<div style="background-color: {{escape-css this.theColor}}; width: 20px; height: 20px;">
</div>
{
"version": "0.17.0",
"EmberENV": {
"FEATURES": {},
"_TEMPLATE_ONLY_GLIMMER_COMPONENTS": false,
"_APPLICATION_TEMPLATE_WRAPPER": true,
"_JQUERY_INTEGRATION": true
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
"ember": "3.17.0",
"ember-template-compiler": "3.17.0",
"ember-testing": "3.17.0"
},
"addons": {
"@glimmer/component": "1.0.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment