You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1837 lines
104 KiB
1837 lines
104 KiB
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["experiments"],{
|
|
|
|
/***/ "./node_modules/@splunk/swc-mltk/dist/build_tools/web_loaders/splunk-public-path-injection-loader.js?/static/app/Splunk_ML_Toolkit/!./src/main/webapp/pages/experiments.es":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
|
|
__webpack_require__.p = (function getPath() {
|
|
|
|
/**
|
|
* This is a port of make_url from js/util.js
|
|
*/
|
|
function make_url() {
|
|
var output = '', seg, len;
|
|
for (var i=0,l=arguments.length; i<l; i++) {
|
|
seg = arguments[i].toString();
|
|
len = seg.length;
|
|
if (len > 1 && seg.charAt(len-1) == '/') {
|
|
seg = seg.substring(0, len-1);
|
|
}
|
|
if (seg.charAt(0) != '/') {
|
|
output += '/' + seg;
|
|
} else {
|
|
output += seg;
|
|
}
|
|
}
|
|
|
|
// augment static dirs with build number
|
|
if (output!='/') {
|
|
var segments = output.split('/');
|
|
var firstseg = segments[1];
|
|
if (firstseg=='static' || firstseg=='modules') {
|
|
var postfix = output.substring(firstseg.length+2, output.length);
|
|
output = '/' + firstseg;
|
|
if (window.$C['BUILD_NUMBER']) output += '/@' + window.$C['BUILD_NUMBER'];
|
|
if (window.$C['BUILD_PUSH_NUMBER']) output += '.' + window.$C['BUILD_PUSH_NUMBER'];
|
|
if (segments[2] == 'app')
|
|
output += ':'+ getConfigValue('APP_BUILD', 0);
|
|
output += '/' + postfix;
|
|
}
|
|
}
|
|
|
|
var root = getConfigValue('MRSPARKLE_ROOT_PATH', '/');
|
|
var locale = getConfigValue('LOCALE', 'en-US');
|
|
var combinedPath = "/" + locale + output;
|
|
|
|
if (root == '' || root == '/') {
|
|
return combinedPath;
|
|
} else {
|
|
return root + combinedPath;
|
|
}
|
|
}
|
|
|
|
function getConfigValue(key, defaultValue) {
|
|
if (window.$C && window.$C.hasOwnProperty(key)) {
|
|
return window.$C[key];
|
|
} else {
|
|
if (defaultValue !== undefined) {
|
|
return defaultValue;
|
|
}
|
|
|
|
throw new Error('getConfigValue - ' + key + ' not set, no default provided');
|
|
}
|
|
}
|
|
|
|
return make_url('/static/app/Splunk_ML_Toolkit/') + '/';
|
|
})();
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__("./src/main/webapp/routers/Experiments.es"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_Experiments, _swcMltk) {
|
|
"use strict";
|
|
|
|
_Experiments = _interopRequireDefault(_Experiments);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
new _Experiments.default();
|
|
_swcMltk.routerUtils.start_backbone_history();
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./src/main/webapp/collections/Experiments.es":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.array.concat.js"), __webpack_require__("./node_modules/core-js/modules/es.regexp.exec.js"), __webpack_require__("./node_modules/core-js/modules/es.string.search.js"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), __webpack_require__("./src/main/webapp/models/PolymorphicExperiment.es")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esArrayConcat, _esRegexpExec, _esStringSearch, _swcMltk, _PolymorphicExperiment) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_PolymorphicExperiment = _interopRequireDefault(_PolymorphicExperiment);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
var _default = _exports.default = _swcMltk.SplunkDsBaseCollection.extend({
|
|
model: _PolymorphicExperiment.default,
|
|
url: 'mltk/experiments',
|
|
initialize: function initialize(models) {
|
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
_swcMltk.SplunkDsBaseCollection.prototype.initialize.apply(this, arguments);
|
|
this.experimentType = options.experimentType;
|
|
},
|
|
fetch: function fetch(fetchParams) {
|
|
// Pass through the `isFetch` flag (see ExperimentModel's `parse` for more info)
|
|
var clonedParams = _swcMltk.jquery.extend(true, {
|
|
isFetch: true
|
|
}, fetchParams);
|
|
|
|
// if an experimentType is provided, apply filtering when fetching
|
|
if (this.experimentType != null) {
|
|
if (clonedParams.data.search) {
|
|
clonedParams.data.search = "(".concat(clonedParams.data.search, ") AND (type=").concat(this.experimentType, ")");
|
|
} else {
|
|
clonedParams.data.search = "type=".concat(this.experimentType);
|
|
}
|
|
}
|
|
return _swcMltk.SplunkDsBaseCollection.prototype.fetch.call(this, clonedParams);
|
|
}
|
|
});
|
|
module.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./src/main/webapp/data/assistantInfo.json":
|
|
/***/ (function(module) {
|
|
|
|
module.exports = JSON.parse("{\"predict_numeric_fields\":{\"description\":\"Predict the value of a numeric field using a weighted combination of the values of other fields in that event.\",\"title\":\"Predict Numeric Fields\"},\"predict_categorical_fields\":{\"description\":\"Predict the value of a categorical field using the values of other fields in that event.\",\"title\":\"Predict Categorical Fields\"},\"detect_numeric_outliers\":{\"description\":\"Find values that differ significantly from previous values.\",\"title\":\"Detect Numeric Outliers\"},\"detect_categorical_outliers\":{\"description\":\"Find events that contain unusual combinations of values.\",\"title\":\"Detect Categorical Outliers\"},\"forecast_time_series\":{\"description\":\"Forecast future values given past values of a metric (numeric time series).\",\"title\":\"Forecast Time Series\"},\"cluster_numeric_events\":{\"description\":\"Partition events with multiple numeric fields into clusters.\",\"title\":\"Cluster Numeric Events\"},\"smart_forecast\":{\"description\":\"Forecast future numeric time series data using a step-by-step guided workflow with the option to bring in data from different sources and account for calendar specific \\\"special days\\\" such as holidays, company-specific event days.\",\"title\":\"Smart Forecasting\"},\"smart_outlier_detection\":{\"description\":\"Detect numeric outliers using a step-by-step guided workflow to leverage a density algorithm and segment data in advance of your anomaly search.\",\"title\":\"Smart Outlier Detection\"},\"smart_clustering\":{\"description\":\"Cluster numeric events using a step-by-step guided workflow.\",\"title\":\"Smart Clustering\"},\"smart_prediction\":{\"description\":\"Predict the value of a categorical or numeric field based on one or more other fields in the event using a step-by-step guided workflow.\",\"title\":\"Smart Prediction\"}}");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./src/main/webapp/routers/Experiments.es":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;__webpack_require__("./node_modules/core-js/modules/es.symbol.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.from.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.slice.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.function.name.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.regexp.to-string.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js");
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.array.concat.js"), __webpack_require__("./node_modules/core-js/modules/es.array.map.js"), __webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"), __webpack_require__("./node_modules/core-js/modules/es.regexp.exec.js"), __webpack_require__("./node_modules/core-js/modules/es.string.search.js"), __webpack_require__("./node_modules/core-js/modules/web.dom-collections.for-each.js"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), __webpack_require__("./src/main/webapp/contrib_shim/underscore/underscore.es"), __webpack_require__("./node_modules/@splunk/ui-utils/i18n.js"), __webpack_require__("./src/main/webapp/collections/Experiments.es"), __webpack_require__("./src/main/webapp/routers/BaseListings.es"), __webpack_require__("experiments/Master")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esArrayConcat, _esArrayMap, _esObjectToString, _esRegexpExec, _esStringSearch, _webDomCollectionsForEach, _swcMltk, _underscoreMltk, _i18n, _Experiments, _BaseListings, _Master) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_underscoreMltk = _interopRequireDefault(_underscoreMltk);
|
|
_Experiments = _interopRequireDefault(_Experiments);
|
|
_BaseListings = _interopRequireDefault(_BaseListings);
|
|
_Master = _interopRequireDefault(_Master);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
var captionFilterKey = ['title'];
|
|
var ExperimentsRouter = _BaseListings.default.extend({
|
|
initialize: function initialize() {
|
|
var _this = this;
|
|
_BaseListings.default.prototype.initialize.apply(this, arguments);
|
|
this.setPageTitle((0, _i18n.gettext)('Experiments'));
|
|
|
|
// the collection that populates the Experiments list
|
|
this.collection.experiments = new _Experiments.default();
|
|
|
|
// stores the counts for the Experiment type tiles
|
|
this.model.experimentsCount = new _swcMltk.BaseModel();
|
|
|
|
// these collections only exist for the purposes of fetching Experiment type counts from SplunkD
|
|
// do not assume that their contents are accurate anywhere except inside fetchCountForType()
|
|
this.experimentsCountCollections = {};
|
|
_Master.default.SORTED_EXPERIMENT_TYPES.forEach(function (type) {
|
|
_this.experimentsCountCollections[type] = new _Experiments.default(null, {
|
|
experimentType: type
|
|
});
|
|
_this.model.experimentsCount.set(type, '');
|
|
});
|
|
this.stateDefaults = {
|
|
sortKey: 'title',
|
|
sortDirection: 'asc',
|
|
offset: 0,
|
|
// setting this default to match what happens when clear() is called on the filter input
|
|
// specifically, a value of '' for the filter input doesn't result in a search value of ''
|
|
// so we set it to the same thing .clear() would set it to to avoid unnecessary change events
|
|
// see updateModel() in views/shared/FindInput.js for reference
|
|
search: _swcMltk.splunkDUtils.createSearchFilterString('', captionFilterKey)
|
|
};
|
|
this.model.state = new _swcMltk.BaseModel(_underscoreMltk.default.extend({
|
|
count: 100,
|
|
fetching: true,
|
|
experimentPageRendered: false
|
|
}, this.stateDefaults));
|
|
this.deferreds.experimentCountsArray = [];
|
|
this.debouncedFetchListCollection = _underscoreMltk.default.debounce(function (model) {
|
|
_this.fetchListCollection();
|
|
}, 0);
|
|
this.initializeListCollections();
|
|
},
|
|
$whenFetchInitializeDependencies: function $whenFetchInitializeDependencies() {
|
|
return _swcMltk.jquery.when.apply(_swcMltk.jquery, [this.rolesCollectionDeferred, this.uiPrefsDeferred, this.deferreds.pageViewRendered, this.deferreds.userPref, this.deferreds.layout, this.deferreds.experiments].concat(_toConsumableArray(this.deferreds.experimentCountsArray)));
|
|
},
|
|
page: function page() {
|
|
var _this2 = this;
|
|
if (!this.experimentsView) {
|
|
this.experimentsView = new _Master.default({
|
|
model: {
|
|
state: this.model.state,
|
|
experimentsCount: this.model.experimentsCount,
|
|
application: this.model.application,
|
|
uiPrefs: this.uiPrefsModel,
|
|
user: this.model.user,
|
|
serverInfo: this.model.serverInfo,
|
|
rawSearch: this.rawSearch,
|
|
userPref: this.model.userPref,
|
|
appLocal: this.model.app,
|
|
classicurl: this.model.classicurl
|
|
},
|
|
collection: {
|
|
experiments: this.collection.experiments,
|
|
roles: this.rolesCollection,
|
|
apps: this.collection.appLocals
|
|
},
|
|
deferreds: {
|
|
layout: this.deferreds.layout
|
|
},
|
|
captionFilterKey: captionFilterKey
|
|
});
|
|
this.uiPrefsModel.entry.content.on('change', function () {
|
|
_this2.populateUIPrefs();
|
|
});
|
|
this.uiPrefsModel.entry.content.on('change:display.prefs.aclFilter', function () {
|
|
_this2.fetchListCollection();
|
|
});
|
|
this.model.state.on('change:experimentType', function () {
|
|
_this2.model.state.set(_this2.stateDefaults, {
|
|
silent: true
|
|
});
|
|
_this2.experimentsView.children.caption.children.input.clear();
|
|
_this2.model.classicurl.save({
|
|
experimentType: _this2.model.state.get('experimentType')
|
|
});
|
|
}, this);
|
|
this.model.state.on('change:sortDirection change:sortKey change:search change:offset change:experimentType', this.debouncedFetchListCollection, this);
|
|
|
|
// when deleting a model, re-fetch the updated list from the server
|
|
this.collection.experiments.on('destroy', function () {
|
|
_this2.fetchListCollection();
|
|
}, this);
|
|
}
|
|
_swcMltk.jquery.when(this.deferreds.layout).then(function (layout) {
|
|
layout.getContainerElement().appendChild(_this2.experimentsView.render().el);
|
|
// Get the url params from the querystring and put them into the state model
|
|
_this2.syncFromClassicUrl();
|
|
});
|
|
_BaseListings.default.prototype.page.apply(this, arguments);
|
|
},
|
|
/**
|
|
* Gets state from the URL params
|
|
*/
|
|
syncFromClassicUrl: function syncFromClassicUrl() {
|
|
this.model.classicurl.fetch();
|
|
var experimentTypeFromURL = this.model.classicurl.get('experimentType');
|
|
var experimentType = _Master.default.SORTED_EXPERIMENT_TYPES.indexOf(experimentTypeFromURL) >= 0 ? experimentTypeFromURL : _Master.default.SORTED_EXPERIMENT_TYPES[0];
|
|
this.model.state.set('experimentType', experimentType);
|
|
},
|
|
/**
|
|
* Initializes the data for the Backbone collections for each Experiment type
|
|
*/
|
|
initializeListCollections: function initializeListCollections() {
|
|
var _this3 = this;
|
|
this.model.state.set('fetching', true);
|
|
this.deferreds.experimentCountsArray = _Master.default.SORTED_EXPERIMENT_TYPES.map(function (type) {
|
|
var countDeferred = _swcMltk.jquery.Deferred();
|
|
if (_this3.model.state.get('experimentType') === type) {
|
|
_this3.fetchListCollection().then(function () {
|
|
countDeferred.resolve();
|
|
});
|
|
} else {
|
|
_this3.fetchCountForType(type).then(function () {
|
|
countDeferred.resolve();
|
|
});
|
|
}
|
|
return countDeferred;
|
|
});
|
|
},
|
|
/**
|
|
* Gets the filters used for fetching the Experiment list
|
|
*/
|
|
getCollectionFilters: function getCollectionFilters() {
|
|
var app = _swcMltk.SharedModels.get('app').get('app');
|
|
var search = this.model.state.get('search') || '';
|
|
var buttonFilterSearch = this.getButtonFilterSearch();
|
|
var sortDir = this.model.state.get('sortDirection');
|
|
var sortKey = this.model.state.get('sortKey').split(',');
|
|
var sortMode = 'natural';
|
|
if (buttonFilterSearch) {
|
|
search += buttonFilterSearch;
|
|
}
|
|
if (sortKey[0] === 'title' || sortKey[0] === 'eai:acl.owner' || sortKey[0] === 'eai:acl.app' || sortKey[0] === 'eai:acl.sharing') {
|
|
sortDir = [sortDir];
|
|
sortMode = [sortMode];
|
|
}
|
|
return {
|
|
app: app,
|
|
owner: this.model.application.get('owner'),
|
|
sort_dir: sortDir,
|
|
sort_key: sortKey,
|
|
sort_mode: sortMode,
|
|
search: search,
|
|
count: this.model.state.get('count'),
|
|
offset: this.model.state.get('offset')
|
|
};
|
|
},
|
|
/**
|
|
* Gets the filters for fetching the Experiment count, overriding certain values from getCollectionFilters()
|
|
*/
|
|
getCountCollectionFilters: function getCountCollectionFilters() {
|
|
return _underscoreMltk.default.extend(this.getCollectionFilters(), {
|
|
// override the search since we want to get an unfiltered count
|
|
search: this.getButtonFilterSearch(),
|
|
// reduce the amount of data transfered by setting the count to 1
|
|
// the "paging.total" field will always contain the full count
|
|
count: 1
|
|
});
|
|
},
|
|
/**
|
|
* Gets the count for the chosen type by fetching with the count collection and setting the result on the count model
|
|
*/
|
|
fetchCountForType: function fetchCountForType(type) {
|
|
var _this4 = this;
|
|
return this.experimentsCountCollections[type].fetch({
|
|
data: this.getCountCollectionFilters(),
|
|
success: function success(fetchedCollection) {
|
|
_this4.model.experimentsCount.set(fetchedCollection.experimentType, fetchedCollection.paging.get('total'));
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* Fetches data for the Backbone collection for the current Experiment type
|
|
*/
|
|
fetchListCollection: function fetchListCollection() {
|
|
var _this5 = this;
|
|
var filters = this.getCollectionFilters();
|
|
|
|
// update the experiment type
|
|
this.collection.experiments.experimentType = this.model.state.get('experimentType');
|
|
this.model.state.set('fetching', true);
|
|
|
|
// fetch the "real" list of Experiments
|
|
return this.collection.experiments.fetch({
|
|
data: filters,
|
|
success: function success(fetchedCollection) {
|
|
_this5.model.state.set('fetching', false);
|
|
|
|
// if we fetched the list of Experiments with no filters, we can use the count from the collection
|
|
// to set the count values on experimentsCount model (which is displayed on the tiles at the top)
|
|
if (filters.search === _swcMltk.splunkDUtils.createSearchFilterString('', captionFilterKey)) {
|
|
// only update the count if no filters were applied
|
|
_this5.model.experimentsCount.set(fetchedCollection.experimentType, fetchedCollection.paging.get('total'));
|
|
} else {
|
|
// if the fetch has a filter, its count is not guaranteed to be accurate, so we need to re-fetch it with no filters
|
|
_this5.fetchCountForType(fetchedCollection.experimentType);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
var _default = _exports.default = ExperimentsRouter;
|
|
module.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/Master":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;__webpack_require__("./node_modules/core-js/modules/es.symbol.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.filter.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.keys.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.for-each.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js");
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.symbol.to-primitive.js"), __webpack_require__("./node_modules/core-js/modules/es.array.find.js"), __webpack_require__("./node_modules/core-js/modules/es.array.map.js"), __webpack_require__("./node_modules/core-js/modules/es.date.to-primitive.js"), __webpack_require__("./node_modules/core-js/modules/es.number.constructor.js"), __webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), __webpack_require__("./node_modules/@splunk/ui-utils/i18n.js"), module, __webpack_require__("./src/main/webapp/models/PolymorphicExperiment.es"), __webpack_require__("./src/main/webapp/util/telemetry/constants.es"), __webpack_require__("shared/BaseDashboard"), __webpack_require__("experiments/modals/Create"), __webpack_require__("experiments/TypeFilter"), __webpack_require__("lookups/table/TableCaption"), __webpack_require__("experiments/header/Create"), __webpack_require__("experiments/table/Master"), __webpack_require__("experiments/TypeSelector/TypeSelector")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esSymbolToPrimitive, _esArrayFind, _esArrayMap, _esDateToPrimitive, _esNumberConstructor, _esObjectToString, _swcMltk, _i18n, _module, _PolymorphicExperiment, _constants, _BaseDashboard, _Create, _TypeFilter, _TableCaption, _Create2, _Master, _TypeSelector) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_module = _interopRequireDefault(_module);
|
|
_PolymorphicExperiment = _interopRequireDefault(_PolymorphicExperiment);
|
|
_BaseDashboard = _interopRequireDefault(_BaseDashboard);
|
|
_Create = _interopRequireDefault(_Create);
|
|
_TypeFilter = _interopRequireDefault(_TypeFilter);
|
|
_TableCaption = _interopRequireDefault(_TableCaption);
|
|
_Create2 = _interopRequireDefault(_Create2);
|
|
_Master = _interopRequireDefault(_Master);
|
|
_TypeSelector = _interopRequireDefault(_TypeSelector);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
var experimentsListContainerId = 'experimentsListContainer';
|
|
var ExperimentsView = _BaseDashboard.default.extend({
|
|
moduleId: _module.default.id,
|
|
headerOptions: {
|
|
title: 'Experiments'
|
|
},
|
|
initialize: function initialize(options) {
|
|
var _this = this;
|
|
_BaseDashboard.default.prototype.initialize.call(this, options);
|
|
this.listenTo(this.model.state, 'createExperiment', function (type) {
|
|
// avoid trying to open the modal when it's already open
|
|
if (!_this.model.state.get('createExperimentModalOpen')) {
|
|
_this.model.state.set('createExperimentModalOpen', true);
|
|
_this.children.createExperimentModal = new _Create.default({
|
|
experimentTypes: ExperimentsView.SORTED_EXPERIMENT_TYPES,
|
|
showExperimentTypePicker: true,
|
|
model: {
|
|
type: type || _PolymorphicExperiment.default.TYPES.PREDICT_NUMERIC_FIELDS,
|
|
application: _this.model.application
|
|
},
|
|
onHiddenRemove: true,
|
|
telemetry: _this.telemetry
|
|
});
|
|
_this.children.createExperimentModal.render().appendTo((0, _swcMltk.jquery)('body')).show();
|
|
_this.listenToOnce(_this.children.createExperimentModal, 'hidden', function () {
|
|
_this.model.state.set('createExperimentModalOpen', false);
|
|
});
|
|
}
|
|
});
|
|
this.listenTo(this.model.state, 'createAlert', function (experimentModel) {
|
|
_this.telemetry.log(_constants.CREATE_EXPERIMENT_ALERT, experimentModel.getTelemetryConstants());
|
|
});
|
|
this.listenTo(this.collection.experiments, 'scheduleEnabled', function (experimentModel) {
|
|
_this.telemetry.log(_constants.SCHEDULE_EXPERIMENT_TRAINING, _objectSpread(_objectSpread({}, experimentModel.getTelemetryConstants()), {}, {
|
|
scheduleEnabled: true
|
|
}));
|
|
});
|
|
this.children.experimentTypeFilterView = new _TypeFilter.default({
|
|
experimentTypes: ExperimentsView.SORTED_EXPERIMENT_TYPES,
|
|
model: {
|
|
state: this.model.state,
|
|
count: this.model.experimentsCount
|
|
}
|
|
});
|
|
this.children.experimentsTypeSelectorView = new _TypeSelector.default({
|
|
experimentTypes: ExperimentsView.SORTED_EXPERIMENT_TYPES,
|
|
model: {
|
|
state: this.model.state,
|
|
application: this.model.application
|
|
}
|
|
});
|
|
this.children.createExperimentButton = new _Create2.default({
|
|
model: {
|
|
application: this.model.application,
|
|
experiment: this.model.experiment,
|
|
state: this.model.state
|
|
}
|
|
});
|
|
|
|
/**
|
|
* Set up views for UI controls
|
|
*/
|
|
this.children.caption = new _TableCaption.default({
|
|
model: {
|
|
state: this.model.state,
|
|
application: this.model.application,
|
|
uiPrefs: this.model.uiPrefs,
|
|
user: this.model.user,
|
|
serverInfo: this.model.serverInfo,
|
|
rawSearch: this.model.rawSearch
|
|
},
|
|
collection: {
|
|
lookupModels: this.collection.experiments
|
|
},
|
|
noFilterButtons: true,
|
|
filterKey: this.options.captionFilterKey,
|
|
countLabel: (0, _i18n.gettext)('Experiments'),
|
|
inputPlaceholder: (0, _i18n.gettext)('Filter by experiment name')
|
|
});
|
|
},
|
|
getTotalCount: function getTotalCount() {
|
|
var _this2 = this;
|
|
var reducer = function reducer(accumulator, currentValue) {
|
|
return accumulator + currentValue;
|
|
};
|
|
return ExperimentsView.SORTED_EXPERIMENT_TYPES.map(function (type) {
|
|
return _this2.model.experimentsCount.get(type) || 1;
|
|
}).reduce(reducer);
|
|
},
|
|
manageStateOfChildren: function manageStateOfChildren() {
|
|
// need to wait until page load because we don't have `experimentList$El` until we load the
|
|
if (this.model.state.get('experimentPageRendered')) {
|
|
if (this.getTotalCount() === 0) {
|
|
this.children.header.$el.hide();
|
|
this.children.experimentTypeFilterView.$el.css('display', 'none');
|
|
this.experimentsList$El.hide();
|
|
this.children.experimentsTypeSelectorView.$el.css('display', 'block');
|
|
} else {
|
|
this.children.experimentsTypeSelectorView.$el.css('display', 'none');
|
|
|
|
// Inherit from stylesheet
|
|
this.children.header.$el.css('display', '');
|
|
this.children.experimentTypeFilterView.$el.css('display', '');
|
|
this.experimentsList$El.css('display', '');
|
|
this.children.experimentsView.updateTable();
|
|
}
|
|
}
|
|
},
|
|
render: function render() {
|
|
if (!this.$el.html()) {
|
|
_BaseDashboard.default.prototype.render.call(this);
|
|
this.children.experimentsTypeSelectorView.render().appendTo(this.$el);
|
|
this.experimentsList$El = this.$el.find("#".concat(experimentsListContainerId));
|
|
this.children.experimentTypeFilterView.render().$el.insertBefore(this.experimentsList$El);
|
|
this.children.caption.render().appendTo(this.experimentsList$El);
|
|
this.children.createExperimentButton.render().appendTo(this.children.header.buttonWrapper);
|
|
this.children.experimentsView = new _Master.default({
|
|
model: {
|
|
state: this.model.state,
|
|
application: this.model.application,
|
|
uiPrefs: this.model.uiPrefs,
|
|
userPref: this.model.userPref,
|
|
user: this.model.user,
|
|
appLocal: this.model.app,
|
|
serverInfo: this.model.serverInfo
|
|
},
|
|
collection: {
|
|
lookupModels: this.collection.experiments,
|
|
roles: this.collection.roles,
|
|
apps: this.collection.apps
|
|
}
|
|
});
|
|
this.children.experimentsView.activate({
|
|
deep: true
|
|
}).render().appendTo(this.experimentsList$El);
|
|
this.model.state.set('experimentPageRendered', true);
|
|
}
|
|
this.manageStateOfChildren();
|
|
return this;
|
|
},
|
|
template: "\n <div id=\"".concat(experimentsListContainerId, "\"></div>")
|
|
}, {
|
|
SORTED_EXPERIMENT_TYPES: [
|
|
// These are rendered in this specific order
|
|
_PolymorphicExperiment.default.TYPES.SMART_FORECAST, _PolymorphicExperiment.default.TYPES.SMART_OUTLIER_DETECTION, _PolymorphicExperiment.default.TYPES.SMART_CLUSTERING, _PolymorphicExperiment.default.TYPES.SMART_PREDICTION, _PolymorphicExperiment.default.TYPES.PREDICT_NUMERIC_FIELDS, _PolymorphicExperiment.default.TYPES.PREDICT_CATEGORICAL_FIELDS, _PolymorphicExperiment.default.TYPES.DETECT_NUMERIC_OUTLIERS, _PolymorphicExperiment.default.TYPES.DETECT_CATEGORICAL_OUTLIERS, _PolymorphicExperiment.default.TYPES.FORECAST_TIME_SERIES, _PolymorphicExperiment.default.TYPES.CLUSTER_NUMERIC_EVENTS]
|
|
});
|
|
var _default = _exports.default = ExperimentsView;
|
|
_module.default.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("./node_modules/@splunk/swc-mltk/node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/TypeFilter":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.array.find.js"), __webpack_require__("./node_modules/core-js/modules/es.array.map.js"), __webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), __webpack_require__("./src/main/webapp/contrib_shim/underscore/underscore.es"), module, __webpack_require__("./src/main/webapp/components/experiments/shared/constants.es"), __webpack_require__("./src/main/webapp/data/assistantInfo.json")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esArrayFind, _esArrayMap, _esObjectToString, _swcMltk, _underscoreMltk, _module, _constants, _assistantInfo) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_underscoreMltk = _interopRequireDefault(_underscoreMltk);
|
|
_module = _interopRequireDefault(_module);
|
|
_assistantInfo = _interopRequireDefault(_assistantInfo);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
var _default = _exports.default = _swcMltk.Backbone.View.extend({
|
|
moduleId: _module.default.id,
|
|
tagName: 'ul',
|
|
className: 'mltk-experiments-type-filter',
|
|
initialize: function initialize() {
|
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
var experimentTypes = options.experimentTypes || [];
|
|
this.experimentTypes = experimentTypes.map(function (type) {
|
|
var assistant = _assistantInfo.default[type];
|
|
return {
|
|
id: type,
|
|
title: assistant.title,
|
|
icon: _constants.EXPERIMENT_ICONS[type]
|
|
};
|
|
});
|
|
this.listenTo(this.model.state, 'change:experimentType', this.updateSelectedType);
|
|
this.listenTo(this.model.count, 'change', this.updateTypeCounts);
|
|
},
|
|
events: {
|
|
'click li': function click_li(e) {
|
|
var index = (0, _swcMltk.jquery)(e.currentTarget).index();
|
|
var experimentInfo = this.experimentTypes[index];
|
|
this.model.state.set('experimentType', experimentInfo.id);
|
|
e.preventDefault();
|
|
}
|
|
},
|
|
render: function render() {
|
|
var template = _underscoreMltk.default.template(this.template, {
|
|
experimentTypes: this.experimentTypes
|
|
});
|
|
this.$el.html(template);
|
|
this.updateSelectedType();
|
|
this.updateTypeCounts();
|
|
return this;
|
|
},
|
|
updateSelectedType: function updateSelectedType() {
|
|
var _this = this;
|
|
var newType = this.model.state.get('experimentType');
|
|
this.$el.find('> li > div.mltk-experiment-type-card').each(function (i, el) {
|
|
(0, _swcMltk.jquery)(el)[newType === _this.experimentTypes[i].id ? 'addClass' : 'removeClass']('active');
|
|
});
|
|
},
|
|
updateTypeCounts: function updateTypeCounts() {
|
|
var _this2 = this;
|
|
this.$el.find('> li').each(function (i, el) {
|
|
(0, _swcMltk.jquery)(el).find('.count').text(_this2.model.count.get(_this2.experimentTypes[i].id));
|
|
});
|
|
},
|
|
template: "\n <% experimentTypes.forEach(function(type) { %>\n <li>\n <div class=\"mltk-experiment-type-card\" data-test=\"<%= type.id %>-card\">\n <div class=\"mltk-experiment-type-title\"><%= type.title %></div>\n <div class=\"mltk-experiment-type-info\">\n <span class=\"icon <%= type.icon %>\"></span>\n <span class=\"count\"></span>\n </div>\n <div>\n </li>\n <% }) %>\n "
|
|
});
|
|
_module.default.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("./node_modules/@splunk/swc-mltk/node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/TypeSelector/ExperimentType":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;__webpack_require__("./node_modules/core-js/modules/es.object.assign.js");
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.symbol.js"), __webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"), __webpack_require__("./node_modules/react/index.js"), __webpack_require__("./node_modules/prop-types/index.js"), __webpack_require__("./src/main/webapp/components/experiments/shared/constants.es"), __webpack_require__("splunkui/IconCard/IconCard"), __webpack_require__("experiments/TypeSelector/propTypes")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esSymbol, _esSymbolDescription, _react, _propTypes, _constants, _IconCard, _propTypes2) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_react = _interopRequireDefault(_react);
|
|
_propTypes = _interopRequireDefault(_propTypes);
|
|
_IconCard = _interopRequireDefault(_IconCard);
|
|
var _excluded = ["experimentType", "onClick"];
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
var propTypes = {
|
|
/* eslint-disable react/forbid-foreign-prop-types */
|
|
experimentType: _propTypes.default.shape(_propTypes2.experimentTypeProps.propTypes).isRequired,
|
|
/* eslint-enable react/forbid-foreign-prop-types */
|
|
onClick: _propTypes.default.func.isRequired
|
|
};
|
|
var ExperimentType = function ExperimentType(_ref) {
|
|
var experimentType = _ref.experimentType,
|
|
onClick = _ref.onClick,
|
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
var description = experimentType.description,
|
|
title = experimentType.title,
|
|
type = experimentType.type;
|
|
var icon = _constants.EXPERIMENT_ICONS[type];
|
|
return /*#__PURE__*/_react.default.createElement(_IconCard.default, _extends({
|
|
"data-test": "experiment-grid-type-card"
|
|
}, props, {
|
|
icon: icon,
|
|
onClick: onClick,
|
|
title: title
|
|
}), description);
|
|
};
|
|
ExperimentType.propTypes = propTypes;
|
|
var _default = _exports.default = ExperimentType;
|
|
module.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/TypeSelector/TypeSelector":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.symbol.js"), __webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"), __webpack_require__("./node_modules/core-js/modules/es.array.map.js"), __webpack_require__("./node_modules/react/index.js"), __webpack_require__("./node_modules/react-hot-loader/root.js"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/reactadapterbase.js"), module, __webpack_require__("./src/main/webapp/data/assistantInfo.json"), __webpack_require__("experiments/TypeSelector/TypeSelectorComponent")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esSymbol, _esSymbolDescription, _esArrayMap, _react, _root, _reactadapterbase, _module, _assistantInfo, _TypeSelectorComponent) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_react = _interopRequireDefault(_react);
|
|
_module = _interopRequireDefault(_module);
|
|
_assistantInfo = _interopRequireDefault(_assistantInfo);
|
|
_TypeSelectorComponent = _interopRequireDefault(_TypeSelectorComponent);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
// react-hot-loader must be loaded before react & react-dom
|
|
// It is also safe to install as regular dependency, has minimal footprint
|
|
|
|
var HotTypeSelector = (0, _root.hot)(_TypeSelectorComponent.default);
|
|
var _default = _exports.default = _reactadapterbase.ReactAdapterBaseView.extend({
|
|
moduleId: _module.default.id,
|
|
className: 'mltk-experiments-type-selector',
|
|
/**
|
|
*
|
|
* @param {object} options
|
|
* @param {string} options.experimentType
|
|
*
|
|
* @param {object} model: {
|
|
* experiment: <models.experiment>,
|
|
* application: <models.Application>,
|
|
* },
|
|
*/
|
|
initialize: function initialize() {
|
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
var experimentTypes = options.experimentTypes || [];
|
|
|
|
// Bind callback
|
|
this.handleItemClick = this.handleItemClick.bind(this);
|
|
this.experimentTypes = experimentTypes.map(function (type) {
|
|
var assistant = _assistantInfo.default[type];
|
|
return {
|
|
description: assistant.description,
|
|
title: assistant.title,
|
|
type: type
|
|
};
|
|
});
|
|
},
|
|
handleItemClick: function handleItemClick(experimentInfo) {
|
|
// the receiver of this event should keep track of whether or not they're in the process
|
|
// of creating the Experiment and ignore the event accordingly
|
|
this.model.state.trigger('createExperiment', experimentInfo.type);
|
|
},
|
|
getComponent: function getComponent() {
|
|
var props = {
|
|
experimentTypes: this.experimentTypes,
|
|
onItemClick: this.handleItemClick
|
|
};
|
|
return _react.default.createElement(HotTypeSelector, props);
|
|
}
|
|
});
|
|
_module.default.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("./node_modules/@splunk/swc-mltk/node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/TypeSelector/TypeSelectorComponent":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.array.map.js"), __webpack_require__("./node_modules/react/index.js"), __webpack_require__("./node_modules/prop-types/index.js"), __webpack_require__("./node_modules/@splunk/react-ui/CardLayout.js"), __webpack_require__("./node_modules/@splunk/ui-utils/i18n.js"), __webpack_require__("experiments/TypeSelector/ExperimentType"), __webpack_require__("experiments/TypeSelector/propTypes"), __webpack_require__("experiments/TypeSelector/TypeSelectorComponent.styles")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esArrayMap, _react, _propTypes, _CardLayout, _i18n, _ExperimentType, _propTypes2, _TypeSelectorComponent) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_react = _interopRequireDefault(_react);
|
|
_propTypes = _interopRequireDefault(_propTypes);
|
|
_CardLayout = _interopRequireDefault(_CardLayout);
|
|
_ExperimentType = _interopRequireDefault(_ExperimentType);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
var propTypes = {
|
|
/* eslint-disable react/forbid-foreign-prop-types */
|
|
experimentTypes: _propTypes.default.arrayOf(_propTypes.default.shape(_propTypes2.experimentTypeProps.propTypes)).isRequired,
|
|
/* eslint-enable react/forbid-foreign-prop-types */
|
|
onItemClick: _propTypes.default.func.isRequired
|
|
};
|
|
|
|
// HACK: SUI-1501
|
|
// CardLayout doesn't set styles on children that aren't instances of react-ui's Card
|
|
// element. We manually pass down the appropriate styles in the meantime.
|
|
var CARD_GUTTER = 20;
|
|
var CARD_MIN_WIDTH = 300;
|
|
var CARD_MAX_WIDTH = 420;
|
|
var cardStyle = {
|
|
// IE11 will fail to render if we use the usual flex shorthand with a `calc` in the basis.
|
|
// Using the separate properties works fine though, so we do things the long way.
|
|
flexGrow: '0',
|
|
flexShrink: '0',
|
|
flexBasis: "calc(33% - ".concat(CARD_GUTTER, "px)"),
|
|
margin: "".concat(CARD_GUTTER / 2, "px")
|
|
};
|
|
var TypeSelector = function TypeSelector(_ref) {
|
|
var experimentTypes = _ref.experimentTypes,
|
|
onItemClick = _ref.onItemClick;
|
|
return /*#__PURE__*/_react.default.createElement(_TypeSelectorComponent.StyledTypeSelector, null, /*#__PURE__*/_react.default.createElement("h2", null, (0, _i18n.gettext)('Select an Assistant to Create an Experiment')), /*#__PURE__*/_react.default.createElement(_CardLayout.default, {
|
|
alignCards: "center",
|
|
cardMaxWidth: CARD_MAX_WIDTH,
|
|
cardMinWidth: CARD_MIN_WIDTH,
|
|
gutterSize: CARD_GUTTER
|
|
}, experimentTypes.map(function (experimentType) {
|
|
return /*#__PURE__*/_react.default.createElement(_ExperimentType.default, {
|
|
key: experimentType.type,
|
|
experimentType: experimentType,
|
|
onClick: function onClick() {
|
|
return onItemClick(experimentType);
|
|
},
|
|
style: cardStyle
|
|
});
|
|
})));
|
|
};
|
|
TypeSelector.propTypes = propTypes;
|
|
var _default = _exports.default = TypeSelector;
|
|
module.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/TypeSelector/TypeSelectorComponent.styles":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;__webpack_require__("./node_modules/core-js/modules/es.array.slice.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.freeze.js");
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/styled-components/dist/styled-components.browser.esm.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _styledComponents) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.StyledTypeSelector = void 0;
|
|
_styledComponents = _interopRequireDefault(_styledComponents);
|
|
var _templateObject;
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
var StyledTypeSelector = _exports.StyledTypeSelector = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n margin: 0 auto;\n max-width: 1400px;\n"])));
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/TypeSelector/propTypes":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/prop-types/index.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _propTypes) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.experimentTypeProps = _exports.exampleProps = void 0;
|
|
_propTypes = _interopRequireDefault(_propTypes);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
var examplePropType = {
|
|
label: _propTypes.default.string.isRequired
|
|
};
|
|
var exampleProps = _exports.exampleProps = {
|
|
propTypes: examplePropType,
|
|
defaultProps: {}
|
|
};
|
|
var experimentTypeProps = _exports.experimentTypeProps = {
|
|
propTypes: {
|
|
description: _propTypes.default.string,
|
|
examples: _propTypes.default.arrayOf(_propTypes.default.shape(examplePropType)),
|
|
icon: _propTypes.default.string,
|
|
style: _propTypes.default.objectOf(_propTypes.default.string),
|
|
title: _propTypes.default.string.isRequired
|
|
},
|
|
defaultProps: {
|
|
description: '',
|
|
examples: [],
|
|
icon: '',
|
|
style: {}
|
|
}
|
|
};
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/header/Create":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./src/main/webapp/contrib_shim/underscore/underscore.es"), module, __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _underscoreMltk, _module, _swcMltk) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_underscoreMltk = _interopRequireDefault(_underscoreMltk);
|
|
_module = _interopRequireDefault(_module);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
var _default = _exports.default = _swcMltk.BaseView.extend({
|
|
moduleId: _module.default.id,
|
|
className: 'mltk-create-experiment',
|
|
events: {
|
|
'click a.btn': function click_aBtn(e) {
|
|
e.preventDefault();
|
|
|
|
// the receiver of this event should keep track of whether or not they're in the process
|
|
// of creating the Experiment and ignore the event accordingly
|
|
this.model.state.trigger('createExperiment', this.model.state.get('experimentType'));
|
|
}
|
|
},
|
|
render: function render() {
|
|
this.$el.html(this.compiledTemplate({
|
|
_: _underscoreMltk.default
|
|
}));
|
|
},
|
|
template: "\n <a class='btn btn-primary' href='#'><%- _('Create New Experiment').t() %></a>\n "
|
|
});
|
|
_module.default.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("./node_modules/@splunk/swc-mltk/node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/modals/Create":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.symbol.js"), __webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"), __webpack_require__("./node_modules/core-js/modules/es.array.concat.js"), __webpack_require__("./node_modules/core-js/modules/es.array.map.js"), __webpack_require__("./node_modules/@splunk/ui-utils/i18n.js"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), module, __webpack_require__("./src/main/webapp/models/PolymorphicExperiment.es"), __webpack_require__("./src/main/webapp/data/assistantInfo.json"), __webpack_require__("./src/main/webapp/util/telemetry/constants.es")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esSymbol, _esSymbolDescription, _esArrayConcat, _esArrayMap, _i18n, _swcMltk, _module, _PolymorphicExperiment, _assistantInfo, _constants) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_module = _interopRequireDefault(_module);
|
|
_PolymorphicExperiment = _interopRequireDefault(_PolymorphicExperiment);
|
|
_assistantInfo = _interopRequireDefault(_assistantInfo);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
var _default = _exports.default = _swcMltk.ModalView.extend({
|
|
moduleId: _module.default.id,
|
|
className: "".concat(_swcMltk.ModalView.CLASS_NAME, " ").concat(_swcMltk.ModalView.CLASS_MODAL_WIDE),
|
|
/**
|
|
*
|
|
* @param options
|
|
* @params model experiment
|
|
* @param {string} options.experimentType long type, e.g. predict_numeric_fields
|
|
* @param {list} options.experimentTypes sorted list of experiment types
|
|
* @param {boolean} options.showExperimentTypePicker a boolean flag to indicate if we want to show the experiment type list
|
|
* @param {boolean} options.telemetry the global telemetry object
|
|
*/
|
|
initialize: function initialize(options) {
|
|
_swcMltk.ModalView.prototype.initialize.apply(this, arguments);
|
|
this.model.experimentAttributes = new _swcMltk.BaseModel({
|
|
type: this.model.type
|
|
});
|
|
this.children.flashMessages = new _swcMltk.FlashMessagesView({
|
|
// We register the experiment once it's been created
|
|
model: {}
|
|
});
|
|
if (options.showExperimentTypePicker) {
|
|
var experimentTypeList = options.experimentTypes.map(function (type) {
|
|
return {
|
|
label: _assistantInfo.default[type].title,
|
|
value: type
|
|
};
|
|
});
|
|
this.children.experimentTypePicker = new _swcMltk.ControlGroupView({
|
|
className: 'control-group',
|
|
controlType: 'SyntheticSelect',
|
|
controlClass: 'controls-block',
|
|
controlOptions: {
|
|
modelAttribute: 'type',
|
|
model: this.model.experimentAttributes,
|
|
items: experimentTypeList,
|
|
toggleClassName: 'btn',
|
|
popdownOptions: {
|
|
attachDialogTo: '.modal:visible',
|
|
scrollContainer: '.modal:visible .modal-body:visible'
|
|
}
|
|
},
|
|
label: (0, _i18n.gettext)('Experiment Type')
|
|
});
|
|
} else {
|
|
this.children.experimentTypeLabel = new _swcMltk.ControlGroupView({
|
|
controlType: 'Label',
|
|
controlOptions: {
|
|
defaultValue: _assistantInfo.default[this.model.experimentAttributes.get('type')].title
|
|
},
|
|
label: (0, _i18n.gettext)('Experiment Type')
|
|
});
|
|
}
|
|
this.children.experimentTitleControl = new _swcMltk.TextControlView({
|
|
elementId: 'experiment-title-control',
|
|
modelAttribute: 'title',
|
|
model: this.model.experimentAttributes
|
|
});
|
|
this.children.experimentTitle = new _swcMltk.ControlGroupView({
|
|
controls: this.children.experimentTitleControl,
|
|
controlType: 'Text',
|
|
controlClass: 'controls-block',
|
|
label: (0, _i18n.gettext)('Experiment Title')
|
|
});
|
|
this.children.descriptionControl = new _swcMltk.TextareaControlView({
|
|
elementId: 'experiment-description-control',
|
|
modelAttribute: 'description',
|
|
model: this.model.experimentAttributes,
|
|
placeholder: 'Optional'
|
|
});
|
|
this.children.description = new _swcMltk.ControlGroupView({
|
|
controls: this.children.descriptionControl,
|
|
controlClass: 'controls-block',
|
|
label: (0, _i18n.gettext)('Description')
|
|
});
|
|
},
|
|
events: _swcMltk.jquery.extend({}, _swcMltk.ModalView.prototype.events, {
|
|
// not needed because we use window.location to re route
|
|
// eslint-disable-next-line consistent-return
|
|
'click a.modal-btn-primary': function click_aModalBtnPrimary(e) {
|
|
var _this = this;
|
|
e.preventDefault();
|
|
|
|
// Unregister the previous experiment's messages, if we've been through here before.
|
|
if (this.unregisterFlashMessages) {
|
|
this.unregisterFlashMessages();
|
|
this.unregisterFlashMessages = null;
|
|
}
|
|
var experiment = new _PolymorphicExperiment.default({
|
|
entry: [{
|
|
content: {
|
|
type: this.model.experimentAttributes.get('type')
|
|
}
|
|
}]
|
|
}, {
|
|
parse: true
|
|
});
|
|
this.children.flashMessages.register(experiment);
|
|
this.children.flashMessages.register(experiment.entry.content);
|
|
// Prep our unregister fn; we'll call this if the save fails and the user tries the save again.
|
|
// This creates a closure around the experiment we created above, so we can refer to it if we need it.
|
|
this.unregisterFlashMessages = function () {
|
|
_this.children.flashMessages.unregister(experiment);
|
|
_this.children.flashMessages.unregister(experiment.entry.content);
|
|
};
|
|
|
|
// App and owner need to be set on the model so that the _new whitelist is fetched from the
|
|
// proper namespace
|
|
var app = this.model.application.get('app');
|
|
var owner = this.model.application.get('owner');
|
|
experiment.app = app;
|
|
experiment.owner = owner;
|
|
|
|
// Do a fetch on the new experiment (to set relevant default attributes)
|
|
_swcMltk.jquery.when(experiment.fetch()).always(function () {
|
|
// Set the description and title after the fetch (they get clobbered otherwise)
|
|
experiment.entry.content.set({
|
|
description: _this.model.experimentAttributes.get('description'),
|
|
title: _this.model.experimentAttributes.get('title')
|
|
});
|
|
// Make the actual POST
|
|
experiment.save({}, {
|
|
data: {
|
|
app: app,
|
|
owner: owner
|
|
},
|
|
success: function success() {
|
|
// Convert experiment type to page
|
|
var destinationAssistantPage = experiment.getType();
|
|
|
|
// Get page info & destination page
|
|
var pageInfo = _swcMltk.mvcUtils.getPageInfo();
|
|
|
|
// redirect user to actual assistant page
|
|
var urlEncodedExperimentId = {
|
|
data: {
|
|
experimentId: experiment.getId()
|
|
}
|
|
};
|
|
|
|
// SWA.js caches telemetry events so this still gets logged
|
|
// even though we leave the page immediately after
|
|
_this.options.telemetry.log(_constants.CREATE_EXPERIMENT, experiment.getTelemetryConstants());
|
|
window.location = _swcMltk.route.page(pageInfo.root, pageInfo.locale, pageInfo.app, destinationAssistantPage, urlEncodedExperimentId);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}),
|
|
render: function render() {
|
|
// Base
|
|
this.$el.html(_swcMltk.ModalView.TEMPLATE);
|
|
this.$el.addClass('create-experiment-modal');
|
|
|
|
// Header
|
|
this.$(_swcMltk.ModalView.HEADER_TITLE_SELECTOR).text('Create New Experiment');
|
|
|
|
// Footer
|
|
this.$(_swcMltk.ModalView.FOOTER_SELECTOR).append(_swcMltk.ModalView.BUTTON_CANCEL).append((0, _swcMltk.jquery)('<a href="#" class="btn btn-primary modal-btn-primary">').text('Create'));
|
|
|
|
// Render controls
|
|
this.$(_swcMltk.ModalView.BODY_SELECTOR).append(_swcMltk.ModalView.FORM_HORIZONTAL_JUSTIFIED);
|
|
this.children.flashMessages.render().appendTo(this.$(_swcMltk.ModalView.BODY_FORM_SELECTOR));
|
|
if (this.children.experimentTypePicker) {
|
|
this.children.experimentTypePicker.render().appendTo(this.$(_swcMltk.ModalView.BODY_FORM_SELECTOR));
|
|
}
|
|
if (this.children.experimentTypeLabel) {
|
|
this.children.experimentTypeLabel.render().appendTo(this.$(_swcMltk.ModalView.BODY_FORM_SELECTOR));
|
|
}
|
|
this.children.experimentTitle.render().appendTo(this.$(_swcMltk.ModalView.BODY_FORM_SELECTOR));
|
|
this.children.description.render().appendTo(this.$(_swcMltk.ModalView.BODY_FORM_SELECTOR));
|
|
return this;
|
|
}
|
|
});
|
|
_module.default.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("./node_modules/@splunk/swc-mltk/node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/modals/publish/Master":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"), __webpack_require__("./node_modules/core-js/modules/es.promise.js"), __webpack_require__("./node_modules/react-hot-loader/root.js"), __webpack_require__("./src/main/webapp/contrib_shim/underscore/underscore.es"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/reactadapterbase.js"), __webpack_require__("./node_modules/react/index.js"), __webpack_require__("./src/main/webapp/models/CloneModels.es"), __webpack_require__("./src/main/webapp/util/parseSplunkDError.es"), __webpack_require__("./src/main/webapp/util/listVisibleApps.es"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), __webpack_require__("experiments/modals/publish/PublishMultiStepModal")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esObjectToString, _esPromise, _root, _underscoreMltk, _reactadapterbase, _react, _CloneModels, _parseSplunkDError, _listVisibleApps, _swcMltk, _PublishMultiStepModal) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_underscoreMltk = _interopRequireDefault(_underscoreMltk);
|
|
_react = _interopRequireDefault(_react);
|
|
_CloneModels = _interopRequireDefault(_CloneModels);
|
|
_parseSplunkDError = _interopRequireDefault(_parseSplunkDError);
|
|
_listVisibleApps = _interopRequireDefault(_listVisibleApps);
|
|
_PublishMultiStepModal = _interopRequireDefault(_PublishMultiStepModal);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
// react-hot-loader must be loaded before react & react-dom
|
|
// It is also safe to install as regular dependency, has minimal footprint
|
|
|
|
var HotPublishMultiStepModal = (0, _root.hot)(_PublishMultiStepModal.default);
|
|
var _default = _exports.default = _reactadapterbase.ReactAdapterBaseView.extend({
|
|
moduleId: module.i,
|
|
initialize: function initialize(options) {
|
|
_reactadapterbase.ReactAdapterBaseView.prototype.initialize.apply(this, options);
|
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
this.handleClose = this.handleClose.bind(this);
|
|
this.fetchAppCollection();
|
|
},
|
|
handleSubmit: function handleSubmit(submitAttributes) {
|
|
var _this = this;
|
|
this.model.experiment.cloneModels.set(submitAttributes);
|
|
return new Promise(function (resolve, reject) {
|
|
_this.model.experiment.cloneModels.save({}, {
|
|
success: function success(model, response, options) {
|
|
resolve(response.messages);
|
|
},
|
|
error: function error(model, response, options) {
|
|
reject((0, _parseSplunkDError.default)(response).messages);
|
|
}
|
|
});
|
|
});
|
|
},
|
|
handleClose: function handleClose() {
|
|
var _this2 = this;
|
|
_underscoreMltk.default.defer(function () {
|
|
return _this2.remove();
|
|
});
|
|
},
|
|
fetchAppCollection: function fetchAppCollection() {
|
|
var _this3 = this;
|
|
var appLocals = new _swcMltk.AppLocalsCollection();
|
|
var prom = appLocals.fetch({
|
|
data: {
|
|
count: 0,
|
|
search: 'show_in_nav=true' // Fetch apps with 'show_in_nav=true'
|
|
}
|
|
}).promise();
|
|
prom.then(function () {
|
|
// Use listVisibleApps to filter visible apps
|
|
_this3.appCollection = (0, _listVisibleApps.default)(appLocals);
|
|
_this3.render(); // render component after fetching apps
|
|
}).catch(function (err) {
|
|
console.error('Error fetching app collection:', err);
|
|
});
|
|
},
|
|
getComponent: function getComponent() {
|
|
var appCollection = this.appCollection || [];
|
|
var modelNameList = this.model.experiment.getAllModelNames();
|
|
var props = {
|
|
experimentModelName: this.model.experiment.getExperimentModelName(),
|
|
modelNameList: modelNameList,
|
|
appCollection: appCollection,
|
|
submitAttributes: _CloneModels.default.SAVE_ATTRIBUTES,
|
|
onSubmit: this.handleSubmit,
|
|
onClose: this.handleClose,
|
|
open: true
|
|
};
|
|
return _react.default.createElement(HotPublishMultiStepModal, props);
|
|
}
|
|
});
|
|
module.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/table/Details":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.array.filter.js"), __webpack_require__("./node_modules/core-js/modules/es.array.map.js"), __webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), __webpack_require__("./src/main/webapp/contrib_shim/underscore/underscore.es"), module, __webpack_require__("lookups/table/Details"), __webpack_require__("lookups/table/PermissionsDialog"), __webpack_require__("experiments/shared/searchStages/Master")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esArrayFilter, _esArrayMap, _esObjectToString, _swcMltk, _underscoreMltk, _module, _Details, _PermissionsDialog, _Master) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_underscoreMltk = _interopRequireDefault(_underscoreMltk);
|
|
_module = _interopRequireDefault(_module);
|
|
_Details = _interopRequireDefault(_Details);
|
|
_PermissionsDialog = _interopRequireDefault(_PermissionsDialog);
|
|
_Master = _interopRequireDefault(_Master);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
var _default = _exports.default = _Details.default.extend({
|
|
moduleId: _module.default.id,
|
|
events: {
|
|
'click a.edit-permissions': function click_aEditPermissions(e) {
|
|
this.children.permissionsDialog = new _PermissionsDialog.default({
|
|
document: this.model.lookupsModel,
|
|
nameModel: this.model.lookupsModel.experimentInfo,
|
|
user: this.model.user,
|
|
serverInfo: this.model.serverInfo,
|
|
application: this.model.application
|
|
}, this.collection, this.options);
|
|
this.children.permissionsDialog.render().appendTo((0, _swcMltk.jquery)('body')).show();
|
|
e.preventDefault();
|
|
}
|
|
},
|
|
render: function render() {
|
|
var preprocessingList = this.model.lookupsModel.getPreprocessingSearchStageModels().map(function (stage) {
|
|
return {
|
|
algorithm: stage.get('algorithm'),
|
|
modelName: stage.get('modelName')
|
|
};
|
|
}).filter(function (stage) {
|
|
return stage.algorithm != null && stage.algorithm.length > 0;
|
|
});
|
|
var experimentSettings = new _Master.default({
|
|
title: 'EXPERIMENT SETTINGS',
|
|
collection: {
|
|
searchStages: new _swcMltk.BaseCollection(this.model.lookupsModel.getMainSearchStageModel())
|
|
}
|
|
}).render();
|
|
_underscoreMltk.default.extend(this.innerTemplateParams, {
|
|
preprocessingSteps: preprocessingList,
|
|
dataSource: this.model.lookupsModel.getFormattedDataSourceString()
|
|
});
|
|
|
|
// completely replace the innerTemplate because most of the fields from mltk/views/lookups/table/Details don't apply here
|
|
this.innerTemplate = "\n <dt class=\"mltk-data-source\">Data Source</dt>\n <dd class=\"mltk-data-source\"><%- dataSource %></dd>\n <dt class=\"modified\">Modified</dt>\n <dd class=\"modified\"></dd>\n <% if (preprocessingSteps.length > 0) { %>\n <br />\n <h5>PREPROCESSING STEPS</h5>\n <% preprocessingSteps.forEach(function(step) { %>\n <dt class=\"mltk-algorithm\">Algorithm</dt>\n <dd class=\"mltk-algorithm\"><%- step.algorithm %></dd>\n <% if (step.modelName) { %>\n <dt class=\"mltk-model-name\">Model Name</dt>\n <dd class=\"mltk-model-name\"><%- step.modelName %></dd>\n <% } %>\n <% }) %>\n <% } %>\n ";
|
|
_Details.default.prototype.render.apply(this, arguments);
|
|
this.$el.append(experimentSettings.el).addClass('mltk-experiment-details');
|
|
return this;
|
|
}
|
|
});
|
|
_module.default.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("./node_modules/@splunk/swc-mltk/node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/table/Master":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"), __webpack_require__("./src/main/webapp/contrib_shim/underscore/underscore.es"), module, __webpack_require__("lookups/table/Master"), __webpack_require__("experiments/table/Details"), __webpack_require__("experiments/table/TableRow"), __webpack_require__("experiments/table/MoreInfo")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esObjectToString, _underscoreMltk, _module, _Master, _Details, _TableRow, _MoreInfo) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_underscoreMltk = _interopRequireDefault(_underscoreMltk);
|
|
_module = _interopRequireDefault(_module);
|
|
_Master = _interopRequireDefault(_Master);
|
|
_Details = _interopRequireDefault(_Details);
|
|
_TableRow = _interopRequireDefault(_TableRow);
|
|
_MoreInfo = _interopRequireDefault(_MoreInfo);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
// used as a column header and also passed to the permissions dialog
|
|
var nameOptions = {
|
|
nameLabel: 'Experiment Name',
|
|
nameKey: 'title'
|
|
};
|
|
var _default = _exports.default = _Master.default.extend({
|
|
className: 'mltk-experiments-table',
|
|
moduleId: _module.default.id,
|
|
details: {
|
|
view: _Details.default,
|
|
options: _underscoreMltk.default.extend({}, nameOptions)
|
|
},
|
|
tableRow: {
|
|
view: _TableRow.default,
|
|
options: _underscoreMltk.default.extend({
|
|
hasActions: true
|
|
}, nameOptions)
|
|
},
|
|
moreInfo: {
|
|
view: _MoreInfo.default
|
|
},
|
|
tbodyClass: 'mltk-experiments-listings',
|
|
initialize: function initialize() {
|
|
// has to be set here because .bind() doesn't work if set as an option above
|
|
this.columns = [{
|
|
label: 'i',
|
|
className: 'col-info',
|
|
html: '<i class="icon-info"></i>'
|
|
}, {
|
|
label: nameOptions.nameLabel,
|
|
sortKey: nameOptions.nameKey
|
|
}, {
|
|
label: 'Algorithm',
|
|
className: 'col-algorithm'
|
|
}, {
|
|
label: 'i',
|
|
className: 'col-scheduled-training',
|
|
html: '<i class="icon-large icon-clock"></i>'
|
|
}, {
|
|
label: 'i',
|
|
className: 'col-alert',
|
|
html: '<i class="icon-large icon-bell"></i>'
|
|
}, {
|
|
label: 'Actions',
|
|
className: 'col-actions',
|
|
visible: function () {
|
|
return this.tableRow.options.hasActions;
|
|
}.bind(this)
|
|
}];
|
|
_Master.default.prototype.initialize.apply(this, arguments);
|
|
},
|
|
updateTable: function updateTable() {
|
|
var canDelete = this.collection.lookupModels.some(function (model) {
|
|
return model.canDelete();
|
|
});
|
|
this.tableRow.options.hasActions = this.collection.lookupModels.length === 0 || canDelete;
|
|
this.children.head.render();
|
|
_Master.default.prototype.updateTable.apply(this, arguments);
|
|
}
|
|
});
|
|
_module.default.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("./node_modules/@splunk/swc-mltk/node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/table/MoreInfo":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), module, __webpack_require__("experiments/modals/TitleDescription"), __webpack_require__("lookups/table/MoreInfo")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _swcMltk, _module, _TitleDescription, _MoreInfo) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_module = _interopRequireDefault(_module);
|
|
_TitleDescription = _interopRequireDefault(_TitleDescription);
|
|
_MoreInfo = _interopRequireDefault(_MoreInfo);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
var _default = _exports.default = _MoreInfo.default.extend({
|
|
moduleId: _module.default.id,
|
|
events: {
|
|
'click a.edit-description': function click_aEditDescription(e) {
|
|
this.children.titleDescriptionModal = new _TitleDescription.default({
|
|
model: {
|
|
experiment: this.model.lookupsModel
|
|
},
|
|
onHiddenRemove: true
|
|
});
|
|
this.children.titleDescriptionModal.render().appendTo((0, _swcMltk.jquery)('body')).show();
|
|
e.preventDefault();
|
|
}
|
|
},
|
|
render: function render() {
|
|
_MoreInfo.default.prototype.render.apply(this, arguments);
|
|
var canWrite = this.model.lookupsModel.canWrite();
|
|
if (canWrite) {
|
|
this.$('p.description').append('<a class="edit-description" href="#">Edit</a>');
|
|
}
|
|
return this;
|
|
}
|
|
});
|
|
_module.default.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("./node_modules/@splunk/swc-mltk/node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/table/PublishLink":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), __webpack_require__("experiments/modals/publish/Master")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _swcMltk, _Master) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_Master = _interopRequireDefault(_Master);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
var _default = _exports.default = _swcMltk.BaseView.extend({
|
|
initialize: function initialize() {
|
|
_swcMltk.BaseView.prototype.initialize.call(this);
|
|
},
|
|
events: {
|
|
'click a.mltk-publish': function click_aMltkPublish(e) {
|
|
e.preventDefault();
|
|
this.children.publish = new _Master.default({
|
|
model: this.model,
|
|
collection: this.collection
|
|
});
|
|
this.children.publish.render().appendTo((0, _swcMltk.jquery)('body'));
|
|
}
|
|
},
|
|
render: function render() {
|
|
this.$el.append('<a class="dropdown-toggle mltk-publish" href="#">Publish</a>');
|
|
}
|
|
});
|
|
module.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "experiments/table/TableRow":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.array.concat.js"), __webpack_require__("./node_modules/@splunk/swc-mltk/dist/index.js"), module, __webpack_require__("lookups/table/PermissionsDialog"), __webpack_require__("lookups/table/TableRow"), __webpack_require__("experiments/shared/manageMenu/Master"), __webpack_require__("experiments/table/PublishLink")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esArrayConcat, _swcMltk, _module, _PermissionsDialog, _TableRow, _Master, _PublishLink) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_module = _interopRequireDefault(_module);
|
|
_PermissionsDialog = _interopRequireDefault(_PermissionsDialog);
|
|
_TableRow = _interopRequireDefault(_TableRow);
|
|
_Master = _interopRequireDefault(_Master);
|
|
_PublishLink = _interopRequireDefault(_PublishLink);
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
// CSS Class Selectors for icons
|
|
var scheduledTrainingTdClass = 'has-scheduled-training';
|
|
var alertTdClass = 'has-alerts';
|
|
var actionsEditClass = 'mltk-actions-edit';
|
|
var _default = _exports.default = _TableRow.default.extend({
|
|
moduleId: _module.default.id,
|
|
className: 'expand',
|
|
/**
|
|
* @param {Object} options {
|
|
* model: {
|
|
* lookupsModel: <models.experiment>,
|
|
* application: <models.Application>,
|
|
* state: <Backbone.Model>,
|
|
* appLocal: <models.services.AppLocal>,
|
|
* user: <models.service.admin.user>
|
|
* },
|
|
* collection: {
|
|
* roles: <collections.services.authorization.Roles>,
|
|
* apps: <collections.services.AppLocals>
|
|
* },
|
|
* index: <index_of_the_row>,
|
|
* alternateApp: <alternate_app_to_open>
|
|
* }
|
|
*/
|
|
initialize: function initialize() {
|
|
_swcMltk.BaseView.prototype.initialize.apply(this, arguments);
|
|
this.$el.addClass(this.options.index % 2 ? 'even' : 'odd');
|
|
this.children.manageDropdownView = new _Master.default({
|
|
model: {
|
|
application: this.model.application,
|
|
experiment: this.model.lookupsModel,
|
|
user: this.model.user,
|
|
appLocal: this.model.appLocal,
|
|
serverInfo: this.model.serverInfo,
|
|
state: this.model.state
|
|
},
|
|
collection: {
|
|
roles: this.collection.roles
|
|
},
|
|
scheduledTrainingEnabled: true,
|
|
titleDescriptionEnabled: true,
|
|
createAlertEnabled: true,
|
|
button: false
|
|
});
|
|
if (this.model.lookupsModel.canBePublished()) {
|
|
this.children.publishDialogView = new _PublishLink.default({
|
|
model: {
|
|
application: this.model.application,
|
|
experiment: this.model.lookupsModel,
|
|
user: this.model.user,
|
|
appLocal: this.model.appLocal,
|
|
serverInfo: this.model.serverInfo,
|
|
state: this.model.state
|
|
},
|
|
collection: {
|
|
apps: this.collection.apps
|
|
}
|
|
});
|
|
}
|
|
},
|
|
startListening: function startListening() {
|
|
var _this = this;
|
|
this.listenTo(this.model.lookupsModel, 'updateCollection', function () {
|
|
_this.model.state.trigger('change:search');
|
|
});
|
|
this.listenTo(this.model.lookupsModel, 'scheduleSuccess', this.updateScheduledTraining);
|
|
this.listenTo(this.model.lookupsModel, 'alertSuccess', this.updateAlert);
|
|
},
|
|
updateScheduledTraining: function updateScheduledTraining() {
|
|
var shouldBeActive = this.model.lookupsModel.hasSchedule();
|
|
var clockIcon = this.$("td.".concat(scheduledTrainingTdClass, " i"));
|
|
clockIcon.toggleClass('active-icon', shouldBeActive);
|
|
var tooltipMessage = shouldBeActive ? 'Scheduled training' : 'No scheduled training';
|
|
clockIcon.tooltip('destroy');
|
|
clockIcon.tooltip({
|
|
title: tooltipMessage,
|
|
animatation: false,
|
|
container: 'body'
|
|
});
|
|
},
|
|
updateAlert: function updateAlert() {
|
|
var shouldBeActive = this.model.lookupsModel.hasEnabledAlerts();
|
|
var bellIcon = this.$("td.".concat(alertTdClass, " i"));
|
|
bellIcon.toggleClass('active-icon', shouldBeActive);
|
|
var tooltipMessage = shouldBeActive ? 'Active alerts' : 'No active alerts';
|
|
bellIcon.tooltip('destroy');
|
|
bellIcon.tooltip({
|
|
title: tooltipMessage,
|
|
animatation: false,
|
|
container: 'body'
|
|
});
|
|
},
|
|
events: {
|
|
'click a.edit-permissions': function click_aEditPermissions(e) {
|
|
this.children.permissionsDialog = new _PermissionsDialog.default({
|
|
document: this.model.lookupsModel,
|
|
nameModel: this.model.lookupsModel.experimentInfo,
|
|
user: this.model.user,
|
|
serverInfo: this.model.serverInfo,
|
|
application: this.model.application
|
|
}, this.collection, this.options);
|
|
this.children.permissionsDialog.render().appendTo((0, _swcMltk.jquery)('body')).show();
|
|
e.preventDefault();
|
|
}
|
|
},
|
|
render: function render() {
|
|
// Convert experiment type to page
|
|
var destinationAssistantPage = this.model.lookupsModel.getType();
|
|
|
|
// Get page info & destination page
|
|
var pageInfo = _swcMltk.mvcUtils.getPageInfo();
|
|
|
|
// redirect user to actual assistant page
|
|
var urlEncodedExperimentId = {
|
|
data: {
|
|
experimentId: this.model.lookupsModel.getId()
|
|
}
|
|
};
|
|
this.$el.html(this.compiledTemplate({
|
|
experimentName: this.model.lookupsModel.getFormattedName(),
|
|
experimentLink: _swcMltk.route.page(pageInfo.root, pageInfo.locale, pageInfo.app, destinationAssistantPage, urlEncodedExperimentId),
|
|
hasActions: this.options.hasActions,
|
|
algorithm: this.model.lookupsModel.getAlgorithm()
|
|
}));
|
|
var actionsEditEl = this.$(".".concat(actionsEditClass)).css({});
|
|
if (this.children.publishDialogView) this.children.publishDialogView.render().prependTo(actionsEditEl);
|
|
this.children.manageDropdownView.render().prependTo(this.$(actionsEditEl));
|
|
actionsEditEl.children().css({
|
|
display: 'inline-block',
|
|
'min-width': '50%'
|
|
});
|
|
this.updateScheduledTraining();
|
|
this.updateAlert();
|
|
return this;
|
|
},
|
|
template: "\n <td class=\"expands\">\n <a href=\"#\"><i class=\"icon-triangle-right-small\"></i></a>\n </td>\n <td class=\"title\">\n <a href=\"<%= experimentLink %>\" title=\"<%- experimentName %>\" class=\"\"><%- experimentName %></a>\n </td>\n <td class=\"algorithm\">\n <%- algorithm %>\n </td>\n <td class=\"".concat(scheduledTrainingTdClass, " icon-cell\">\n <i class=\"icon-large icon-clock\"></i>\n </td>\n <td class=\"").concat(alertTdClass, " icon-cell\">\n <i class=\"icon-large icon-bell\"></i>\n </td>\n <% if (hasActions) { %>\n <td class=\"actions ").concat(actionsEditClass, "\">\n </td>\n <% } %>\n ")
|
|
});
|
|
_module.default.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("./node_modules/@splunk/swc-mltk/node_modules/webpack/buildin/module.js")(module)))
|
|
|
|
/***/ }),
|
|
|
|
/***/ "splunkui/IconCard/Body":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;__webpack_require__("./node_modules/core-js/modules/es.symbol.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.filter.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.keys.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.for-each.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js");
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/core-js/modules/es.symbol.to-primitive.js"), __webpack_require__("./node_modules/core-js/modules/es.date.to-primitive.js"), __webpack_require__("./node_modules/core-js/modules/es.number.constructor.js"), __webpack_require__("./node_modules/react/index.js"), __webpack_require__("./node_modules/prop-types/index.js"), __webpack_require__("./node_modules/@splunk/react-ui/Card.js"), __webpack_require__("splunkui/IconCard/IconCard.styles")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _esSymbolToPrimitive, _esDateToPrimitive, _esNumberConstructor, _react, _propTypes, _Card, _IconCard) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_react = _interopRequireDefault(_react);
|
|
_propTypes = _interopRequireDefault(_propTypes);
|
|
var _excluded = ["children", "icon"];
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
/* eslint-disable react/forbid-foreign-prop-types */
|
|
var propTypes = _objectSpread(_objectSpread({}, _Card.Body.propTypes), {}, {
|
|
icon: _propTypes.default.string
|
|
});
|
|
/* eslint-enable react/forbid-foreign-prop-types */
|
|
var defaultProps = {
|
|
icon: null
|
|
};
|
|
var IconCardBody = function IconCardBody(_ref) {
|
|
var children = _ref.children,
|
|
icon = _ref.icon,
|
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
return /*#__PURE__*/_react.default.createElement(_Card.Body, props, /*#__PURE__*/_react.default.createElement(_IconCard.BodyIcon, {
|
|
className: "icon ".concat(icon),
|
|
icon: icon
|
|
}), children);
|
|
};
|
|
IconCardBody.propTypes = propTypes;
|
|
IconCardBody.defaultProps = defaultProps;
|
|
var _default = _exports.default = IconCardBody;
|
|
module.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "splunkui/IconCard/Header":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.to-primitive.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.filter.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.date.to-primitive.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.number.constructor.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.assign.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.keys.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.for-each.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js");
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/react/index.js"), __webpack_require__("./node_modules/prop-types/index.js"), __webpack_require__("./node_modules/react-style-proptype/src/index.js"), __webpack_require__("./node_modules/@splunk/react-ui/Card.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _react, _propTypes, _reactStyleProptype, _Card) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_react = _interopRequireDefault(_react);
|
|
_propTypes = _interopRequireDefault(_propTypes);
|
|
_reactStyleProptype = _interopRequireDefault(_reactStyleProptype);
|
|
var _excluded = ["style"];
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
var propTypes = {
|
|
style: _reactStyleProptype.default,
|
|
title: _propTypes.default.string.isRequired
|
|
};
|
|
var defaultProps = {
|
|
style: {}
|
|
};
|
|
var headerStyleOverrides = {
|
|
// Icon cards have centered titles
|
|
justifyContent: 'center'
|
|
};
|
|
|
|
// Hack header to center text
|
|
var IconCardHeader = function IconCardHeader(_ref) {
|
|
var style = _ref.style,
|
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
return /*#__PURE__*/_react.default.createElement(_Card.Header, _extends({
|
|
style: _objectSpread(_objectSpread({}, style), headerStyleOverrides)
|
|
}, props));
|
|
};
|
|
IconCardHeader.propTypes = propTypes;
|
|
IconCardHeader.defaultProps = defaultProps;
|
|
var _default = _exports.default = IconCardHeader;
|
|
module.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "splunkui/IconCard/IconCard":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.to-primitive.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.filter.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.date.to-primitive.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.number.constructor.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.assign.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptors.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.keys.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.for-each.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js");
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/react/index.js"), __webpack_require__("./node_modules/prop-types/index.js"), __webpack_require__("./node_modules/react-style-proptype/src/index.js"), __webpack_require__("./node_modules/@splunk/react-ui/Card.js"), __webpack_require__("splunkui/IconCard/Header"), __webpack_require__("splunkui/IconCard/Body")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _react, _propTypes, _reactStyleProptype, _Card, _Header, _Body) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.default = void 0;
|
|
_react = _interopRequireDefault(_react);
|
|
_propTypes = _interopRequireDefault(_propTypes);
|
|
_reactStyleProptype = _interopRequireDefault(_reactStyleProptype);
|
|
_Card = _interopRequireDefault(_Card);
|
|
_Header = _interopRequireDefault(_Header);
|
|
_Body = _interopRequireDefault(_Body);
|
|
var _excluded = ["children", "icon", "style", "title"]; // A React UI card (http://splunkui.sv.splunk.com/Packages/react-ui/Card) that
|
|
// supports icons.
|
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
var propTypes = {
|
|
children: _propTypes.default.node.isRequired,
|
|
icon: _propTypes.default.string,
|
|
style: _reactStyleProptype.default,
|
|
title: _propTypes.default.string
|
|
};
|
|
var defaultProps = {
|
|
icon: '',
|
|
style: {},
|
|
title: ''
|
|
};
|
|
var cardStyleHack = {
|
|
display: 'inline-flex' // hack to work around react-ui bug (SUI-1499)
|
|
};
|
|
var IconCard = function IconCard(_ref) {
|
|
var children = _ref.children,
|
|
icon = _ref.icon,
|
|
style = _ref.style,
|
|
title = _ref.title,
|
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
return /*#__PURE__*/_react.default.createElement(_Card.default, _extends({}, props, {
|
|
style: _objectSpread(_objectSpread({}, style), cardStyleHack)
|
|
}), title ? /*#__PURE__*/_react.default.createElement(_Header.default, {
|
|
title: title
|
|
}) : null, /*#__PURE__*/_react.default.createElement(_Body.default, {
|
|
icon: icon
|
|
}, children));
|
|
};
|
|
IconCard.propTypes = propTypes;
|
|
IconCard.defaultProps = defaultProps;
|
|
var _default = _exports.default = IconCard;
|
|
module.exports = exports["default"];
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ }),
|
|
|
|
/***/ "splunkui/IconCard/IconCard.styles":
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.array.slice.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.freeze.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptor.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js");
|
|
__webpack_require__("./node_modules/core-js/modules/es.weak-map.js");
|
|
__webpack_require__("./node_modules/core-js/modules/esnext.weak-map.delete-all.js");
|
|
__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js");
|
|
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__("./node_modules/styled-components/dist/styled-components.browser.esm.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_exports, _styledComponents) {
|
|
"use strict";
|
|
|
|
Object.defineProperty(_exports, "__esModule", {
|
|
value: true
|
|
});
|
|
_exports.BodyIcon = void 0;
|
|
_styledComponents = _interopRequireWildcard(_styledComponents);
|
|
var _templateObject, _templateObject2;
|
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
var iconStyles = "\n display: block;\n font-size: 72px;\n line-height: 1;\n text-align: center;\n margin-bottom: 10px;\n color: #1e93c6;\n";
|
|
var BodyIcon = _exports.BodyIcon = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", "\n"])), function (props) {
|
|
return props.icon ? (0, _styledComponents.css)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", ""])), iconStyles) : '';
|
|
});
|
|
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
|
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
|
|
|
/***/ })
|
|
|
|
},[["./node_modules/@splunk/swc-mltk/dist/build_tools/web_loaders/splunk-public-path-injection-loader.js?/static/app/Splunk_ML_Toolkit/!./src/main/webapp/pages/experiments.es","pages_common"]]]); |