summaryrefslogtreecommitdiffstats
path: root/vnfmarket/common/thirdparty/angular-ui-router/src/templateFactory.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/common/thirdparty/angular-ui-router/src/templateFactory.js')
-rw-r--r--vnfmarket/common/thirdparty/angular-ui-router/src/templateFactory.js166
1 files changed, 166 insertions, 0 deletions
diff --git a/vnfmarket/common/thirdparty/angular-ui-router/src/templateFactory.js b/vnfmarket/common/thirdparty/angular-ui-router/src/templateFactory.js
new file mode 100644
index 00000000..36d2a4d5
--- /dev/null
+++ b/vnfmarket/common/thirdparty/angular-ui-router/src/templateFactory.js
@@ -0,0 +1,166 @@
+
+/**
+ * @ngdoc object
+ * @name ui.router.util.$templateFactoryProvider
+ *
+ * @description
+ * Provider for $templateFactory. Manages which template-loading mechanism to
+ * use, and will default to the most recent one ($templateRequest on Angular
+ * versions starting from 1.3, $http otherwise).
+ */
+function TemplateFactoryProvider() {
+ var shouldUnsafelyUseHttp = angular.version.minor < 3;
+
+ /**
+ * @ngdoc function
+ * @name ui.router.util.$templateFactoryProvider#shouldUnsafelyUseHttp
+ * @methodOf ui.router.util.$templateFactoryProvider
+ *
+ * @description
+ * Forces $templateFactory to use $http instead of $templateRequest. This
+ * might cause XSS, as $http doesn't enforce the regular security checks for
+ * templates that have been introduced in Angular 1.3. Note that setting this
+ * to false on Angular older than 1.3.x will crash, as the $templateRequest
+ * service (and the security checks) are not implemented on these versions.
+ *
+ * See the $sce documentation, section
+ * <a href="https://docs.angularjs.org/api/ng/service/$sce#impact-on-loading-templates">
+ * Impact on loading templates</a> for more details about this mechanism.
+ *
+ * @param {boolean} value
+ */
+ this.shouldUnsafelyUseHttp = function(value) {
+ shouldUnsafelyUseHttp = !!value;
+ };
+
+ /**
+ * @ngdoc object
+ * @name ui.router.util.$templateFactory
+ *
+ * @requires $http
+ * @requires $templateCache
+ * @requires $injector
+ *
+ * @description
+ * Service. Manages loading of templates.
+ */
+ this.$get = ['$http', '$templateCache', '$injector', function($http, $templateCache, $injector){
+ return new TemplateFactory($http, $templateCache, $injector, shouldUnsafelyUseHttp);}];
+}
+
+
+/**
+ * @ngdoc object
+ * @name ui.router.util.$templateFactory
+ *
+ * @requires $http
+ * @requires $templateCache
+ * @requires $injector
+ *
+ * @description
+ * Service. Manages loading of templates.
+ */
+function TemplateFactory($http, $templateCache, $injector, shouldUnsafelyUseHttp) {
+
+ /**
+ * @ngdoc function
+ * @name ui.router.util.$templateFactory#fromConfig
+ * @methodOf ui.router.util.$templateFactory
+ *
+ * @description
+ * Creates a template from a configuration object.
+ *
+ * @param {object} config Configuration object for which to load a template.
+ * The following properties are search in the specified order, and the first one
+ * that is defined is used to create the template:
+ *
+ * @param {string|object} config.template html string template or function to
+ * load via {@link ui.router.util.$templateFactory#fromString fromString}.
+ * @param {string|object} config.templateUrl url to load or a function returning
+ * the url to load via {@link ui.router.util.$templateFactory#fromUrl fromUrl}.
+ * @param {Function} config.templateProvider function to invoke via
+ * {@link ui.router.util.$templateFactory#fromProvider fromProvider}.
+ * @param {object} params Parameters to pass to the template function.
+ * @param {object} locals Locals to pass to `invoke` if the template is loaded
+ * via a `templateProvider`. Defaults to `{ params: params }`.
+ *
+ * @return {string|object} The template html as a string, or a promise for
+ * that string,or `null` if no template is configured.
+ */
+ this.fromConfig = function (config, params, locals) {
+ return (
+ isDefined(config.template) ? this.fromString(config.template, params) :
+ isDefined(config.templateUrl) ? this.fromUrl(config.templateUrl, params) :
+ isDefined(config.templateProvider) ? this.fromProvider(config.templateProvider, params, locals) :
+ null
+ );
+ };
+
+ /**
+ * @ngdoc function
+ * @name ui.router.util.$templateFactory#fromString
+ * @methodOf ui.router.util.$templateFactory
+ *
+ * @description
+ * Creates a template from a string or a function returning a string.
+ *
+ * @param {string|object} template html template as a string or function that
+ * returns an html template as a string.
+ * @param {object} params Parameters to pass to the template function.
+ *
+ * @return {string|object} The template html as a string, or a promise for that
+ * string.
+ */
+ this.fromString = function (template, params) {
+ return isFunction(template) ? template(params) : template;
+ };
+
+ /**
+ * @ngdoc function
+ * @name ui.router.util.$templateFactory#fromUrl
+ * @methodOf ui.router.util.$templateFactory
+ *
+ * @description
+ * Loads a template from the a URL via `$http` and `$templateCache`.
+ *
+ * @param {string|Function} url url of the template to load, or a function
+ * that returns a url.
+ * @param {Object} params Parameters to pass to the url function.
+ * @return {string|Promise.<string>} The template html as a string, or a promise
+ * for that string.
+ */
+ this.fromUrl = function (url, params) {
+ if (isFunction(url)) url = url(params);
+ if (url == null) return null;
+ else {
+ if(!shouldUnsafelyUseHttp) {
+ return $injector.get('$templateRequest')(url);
+ } else {
+ return $http
+ .get(url, { cache: $templateCache, headers: { Accept: 'text/html' }})
+ .then(function(response) { return response.data; });
+ }
+ }
+ };
+
+ /**
+ * @ngdoc function
+ * @name ui.router.util.$templateFactory#fromProvider
+ * @methodOf ui.router.util.$templateFactory
+ *
+ * @description
+ * Creates a template by invoking an injectable provider function.
+ *
+ * @param {Function} provider Function to invoke via `$injector.invoke`
+ * @param {Object} params Parameters for the template.
+ * @param {Object} locals Locals to pass to `invoke`. Defaults to
+ * `{ params: params }`.
+ * @return {string|Promise.<string>} The template html as a string, or a promise
+ * for that string.
+ */
+ this.fromProvider = function (provider, params, locals) {
+ return $injector.invoke(provider, null, locals || { params: params });
+ };
+}
+
+angular.module('ui.router.util').provider('$templateFactory', TemplateFactoryProvider);