@ms-atlas-module/datastudio-datafactory 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @ms-atlas-module/datastudio-datafactory might be problematic. Click here for more details.
- package/_generated/ClientResources.js +1549 -0
- package/_generated/Framework.js +97 -0
- package/_generated/Svg.js +201 -0
- package/bootstrapper/BreadcrumbsKnockoutBinding.js +25 -0
- package/bootstrapper/CSS/Callout.css +43 -0
- package/bootstrapper/CSS/Common.css +22 -0
- package/bootstrapper/CSS/FormFields.css +133 -0
- package/bootstrapper/CSS/InlineBlock.css +34 -0
- package/bootstrapper/CSS/ParameterGroups.css +77 -0
- package/bootstrapper/CSS/Pivot.css +25 -0
- package/bootstrapper/CSS/Wizard.css +197 -0
- package/bootstrapper/CalloutBinding.js +52 -0
- package/bootstrapper/CollapsibleKnockoutBinding.js +70 -0
- package/bootstrapper/CopyBinding.js +150 -0
- package/bootstrapper/FilterFlyoutKnockoutBinding.js +114 -0
- package/bootstrapper/FormFields.js +397 -0
- package/bootstrapper/InlineBlockBinding.js +69 -0
- package/bootstrapper/JQueryUIBindings.js +152 -0
- package/bootstrapper/KnockoutBindings.js +635 -0
- package/bootstrapper/LoadingBinding.js +54 -0
- package/bootstrapper/MonacoEditorKnockoutBinding.js +67 -0
- package/bootstrapper/ParameterGroupsBinding.js +289 -0
- package/bootstrapper/PivotKnockoutBinding.js +61 -0
- package/bootstrapper/StatusCalendarFlyoutKnockoutBinding.js +398 -0
- package/bootstrapper/StatusCalendarKnockoutBinding.js +107 -0
- package/bootstrapper/TelemetryKnockoutBinding.js +68 -0
- package/bootstrapper/WinJSButtonKnockoutBinding.js +72 -0
- package/bootstrapper/WinJSKnockoutBindings.js +49 -0
- package/bootstrapper/WizardBinding.js +611 -0
- package/bootstrapper/startup.js +29 -0
- package/libs/VivaGraphControl/Content/CSS/Graph.css +157 -0
- package/libs/VivaGraphControl/Content/CSS/LightTheme.css +699 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Base/Base.TriggerableLifetimeManager.js +190 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Base/Base.js +647 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Base/Image.js +113 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Base/KnockoutExtensions.js +1064 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/DockedBalloon.js +18 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Visualization/Graph/Animation.js +192 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Visualization/Graph/Commands/MoveNodes.js +83 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Visualization/Graph/Geometry.js +167 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Visualization/Graph/GraphEntityViewModel.js +260 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Visualization/Graph/GraphViewModel.js +338 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Visualization/Graph/GraphWidget.Constants.js +178 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Visualization/Graph/GraphWidget.js +5190 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Visualization/Graph/MouseCapture.js +148 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Controls/Visualization/Graph/SvgUtils.js +164 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Util/Detection.js +658 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Util/Resize.js +241 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Util/Util.Private.js +236 -0
- package/libs/VivaGraphControl/Content/Scripts/Viva.Controls/Util/Util.js +905 -0
- package/libs/WinJS/WinJs.min.js +61909 -0
- package/libs/WinJS/ui-light.css +8500 -0
- package/package.json +15 -0
- package/scripts/AppContext.js +262 -0
- package/scripts/ExposureControl.js +11 -0
- package/scripts/Framework/Model/ActivityWindowCache.js +390 -0
- package/scripts/Framework/Model/ArmDataFactoryCache.js +77 -0
- package/scripts/Framework/Model/Contracts/Activity.js +83 -0
- package/scripts/Framework/Model/Contracts/ActivityWindow.js +185 -0
- package/scripts/Framework/Model/Contracts/BaseEncodable.js +106 -0
- package/scripts/Framework/Model/Contracts/Common.js +19 -0
- package/scripts/Framework/Model/Contracts/DataArtifact.js +100 -0
- package/scripts/Framework/Model/Contracts/Diagram.js +9 -0
- package/scripts/Framework/Model/Contracts/Encodable.js +113 -0
- package/scripts/Framework/Model/Contracts/Gateway.js +98 -0
- package/scripts/Framework/Model/Contracts/LinkedService.js +200 -0
- package/scripts/Framework/Model/Contracts/Pipeline.js +197 -0
- package/scripts/Framework/Model/DataCache.js +105 -0
- package/scripts/Framework/Model/DataFactoryCache.js +24 -0
- package/scripts/Framework/Model/Filter.js +186 -0
- package/scripts/Framework/Model/Helpers/ActivityWindowHelper.js +185 -0
- package/scripts/Framework/Model/MonitoringView.js +40 -0
- package/scripts/Framework/Shared/Constants.js +27 -0
- package/scripts/Framework/Shared/DataConstants.js +61 -0
- package/scripts/Framework/Shared/Disposable.js +53 -0
- package/scripts/Framework/Shared/IconResources.js +59 -0
- package/scripts/Framework/Shared/Resources/IbizaSvgs.js +241 -0
- package/scripts/Framework/Shared/TypeDeclarations.js +4 -0
- package/scripts/Framework/Telemetry/Telemetry.js +78 -0
- package/scripts/Framework/UI/Breadcrumbs.js +84 -0
- package/scripts/Framework/UI/Command.js +231 -0
- package/scripts/Framework/UI/ContextMenu.js +80 -0
- package/scripts/Framework/UI/Loader.js +11 -0
- package/scripts/Framework/UI/Menu.js +65 -0
- package/scripts/Framework/UI/PanelMessage.js +25 -0
- package/scripts/Framework/UI/Refresh.js +70 -0
- package/scripts/Framework/UI/Spinner.js +61 -0
- package/scripts/Framework/UI/StatusCalendar.js +1070 -0
- package/scripts/Framework/UI/Toolbar.js +84 -0
- package/scripts/Framework/Util/Datetime.js +258 -0
- package/scripts/Framework/Util/Log.js +10 -0
- package/scripts/Framework/Util/ResourceIdUtil.js +56 -0
- package/scripts/Framework/Util/Security.js +73 -0
- package/scripts/Framework/Util/Util.js +332 -0
- package/scripts/Framework/Views/HoverFlyout.js +92 -0
- package/scripts/Handlers/ErrorHandler.js +176 -0
- package/scripts/Handlers/MessageHandler.js +115 -0
- package/scripts/Handlers/MonitoringViewHandler.js +199 -0
- package/scripts/Handlers/RoutingHandler.js +364 -0
- package/scripts/Handlers/WinJSHandlers.js +265 -0
- package/scripts/MonitoringViewContext.js +75 -0
- package/scripts/Services/AzureInsightsService.js +162 -0
- package/scripts/Services/AzureResourceManagerService.js +869 -0
- package/scripts/Services/BaseService.js +232 -0
- package/scripts/Services/DataFactoryService.js +204 -0
- package/scripts/Services/HDInsightArmService.js +59 -0
- package/scripts/ViewContext.js +9 -0
- package/stylesheets/main.css +1042 -0
- package/views/Edit/DateTimeFilterViewModel.js +211 -0
- package/views/Edit/FilterViewModel.js +131 -0
- package/views/Shared/ProvisioningState.js +11 -0
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
define([
|
|
2
|
+
"require",
|
|
3
|
+
"exports",
|
|
4
|
+
"../scripts/AppContext",
|
|
5
|
+
"../scripts/MonitoringViewContext",
|
|
6
|
+
"../_generated/Framework",
|
|
7
|
+
"Hulljs",
|
|
8
|
+
"../scripts/Framework/Util/Log",
|
|
9
|
+
"../scripts/Framework/Model/Contracts/ActivityWindow",
|
|
10
|
+
"text!./Templates/GraphNodeStatusTemplate.html",
|
|
11
|
+
], function (
|
|
12
|
+
require,
|
|
13
|
+
exports,
|
|
14
|
+
AppContext,
|
|
15
|
+
MonitoringViewContext_1,
|
|
16
|
+
Framework,
|
|
17
|
+
Hulljs,
|
|
18
|
+
Log,
|
|
19
|
+
ActivityWindowModel
|
|
20
|
+
) {
|
|
21
|
+
"use strict";
|
|
22
|
+
var DataConstants = Framework.DataConstants;
|
|
23
|
+
var StatusCalendar = Framework.StatusCalendar;
|
|
24
|
+
var LifetimeManager = Framework.Disposable.DisposableLifetimeManager;
|
|
25
|
+
var Util = Framework.Util;
|
|
26
|
+
var logger = Log.getLogger({
|
|
27
|
+
loggerName: "StatusCalendarFlyoutKnockoutBinding",
|
|
28
|
+
});
|
|
29
|
+
(function (FlyoutBindingType) {
|
|
30
|
+
FlyoutBindingType[(FlyoutBindingType["Activity"] = 0)] = "Activity";
|
|
31
|
+
FlyoutBindingType[(FlyoutBindingType["Table"] = 1)] = "Table";
|
|
32
|
+
})(exports.FlyoutBindingType || (exports.FlyoutBindingType = {}));
|
|
33
|
+
var FlyoutBindingType = exports.FlyoutBindingType;
|
|
34
|
+
var flyoutClickeaterSelector = ".win-flyoutmenuclickeater";
|
|
35
|
+
var actionForShow = "mouseenter";
|
|
36
|
+
var calendarId = "graphNodeStatusHover";
|
|
37
|
+
var flyoutSelector = ".adfGraphNodeStatusFlyout";
|
|
38
|
+
var GraphNodeStatusBindingHandler = (function () {
|
|
39
|
+
function GraphNodeStatusBindingHandler() {}
|
|
40
|
+
GraphNodeStatusBindingHandler.prototype.init = function (
|
|
41
|
+
element,
|
|
42
|
+
valueAccessor,
|
|
43
|
+
allBindingsAccessor,
|
|
44
|
+
viewModel,
|
|
45
|
+
bindingContext
|
|
46
|
+
) {
|
|
47
|
+
if (!viewModel) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
var value = valueAccessor();
|
|
51
|
+
element.innerHTML = GraphNodeStatusBindingHandler.template;
|
|
52
|
+
var appContext = AppContext.AppContext.getInstance();
|
|
53
|
+
var viewContext = appContext.getViewContext(
|
|
54
|
+
MonitoringViewContext_1.MonitoringViewContext
|
|
55
|
+
);
|
|
56
|
+
var nodeStatus = ko.observable([]);
|
|
57
|
+
var shouldDisplay = ko.observable(true);
|
|
58
|
+
ko.applyBindingsToDescendants(
|
|
59
|
+
{
|
|
60
|
+
nodeStatus: nodeStatus,
|
|
61
|
+
shouldDisplay: shouldDisplay,
|
|
62
|
+
},
|
|
63
|
+
element
|
|
64
|
+
);
|
|
65
|
+
if (value.additionalQueryFilter === null) {
|
|
66
|
+
shouldDisplay(false);
|
|
67
|
+
return { controlsDescendantBindings: true };
|
|
68
|
+
}
|
|
69
|
+
var lifetimeManager = new LifetimeManager();
|
|
70
|
+
var availability = null;
|
|
71
|
+
value.availabilityPromise.then(function (valueAvailability) {
|
|
72
|
+
availability = valueAvailability;
|
|
73
|
+
});
|
|
74
|
+
if (value.recentActivityWindows) {
|
|
75
|
+
lifetimeManager.registerForDispose(
|
|
76
|
+
Util.subscribeAndCall(
|
|
77
|
+
value.recentActivityWindows,
|
|
78
|
+
function (recentActivityWindows) {
|
|
79
|
+
value.availabilityPromise.then(
|
|
80
|
+
function () {
|
|
81
|
+
nodeStatus(
|
|
82
|
+
getLastFewStatusBoxes(
|
|
83
|
+
availability.frequency(),
|
|
84
|
+
availability.interval(),
|
|
85
|
+
recentActivityWindows,
|
|
86
|
+
viewContext.dateRange().endDate
|
|
87
|
+
)
|
|
88
|
+
);
|
|
89
|
+
},
|
|
90
|
+
function (reason) {
|
|
91
|
+
if (reason) {
|
|
92
|
+
logger.logError(
|
|
93
|
+
"Failed to display graph node status for {0}, reason: {1}".format(
|
|
94
|
+
value.calendarHeader,
|
|
95
|
+
reason
|
|
96
|
+
),
|
|
97
|
+
reason
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
var flyoutHostDiv = bindingContext.$root.func.element
|
|
107
|
+
.parent()[0]
|
|
108
|
+
.querySelector(flyoutSelector);
|
|
109
|
+
var flyout = flyoutHostDiv.winControl;
|
|
110
|
+
var clickEaterElement = $(flyoutClickeaterSelector)[0];
|
|
111
|
+
var statusCalendar =
|
|
112
|
+
StatusCalendar.StatusCalendar.statusCalendars[calendarId];
|
|
113
|
+
var boundedConvexPolygon = null;
|
|
114
|
+
var afterFlyoutShows, beforeFlyoutHides;
|
|
115
|
+
var clickEaterMouseMoveListener;
|
|
116
|
+
afterFlyoutShows = function () {
|
|
117
|
+
flyout.addEventListener("beforehide", beforeFlyoutHides);
|
|
118
|
+
var verticesToCover = getRectVertices(
|
|
119
|
+
flyoutHostDiv.getBoundingClientRect()
|
|
120
|
+
);
|
|
121
|
+
verticesToCover = verticesToCover.concat(
|
|
122
|
+
getRectVertices(element.getBoundingClientRect())
|
|
123
|
+
);
|
|
124
|
+
boundedConvexPolygon = Hulljs(verticesToCover, Infinity, [".x", ".y"]);
|
|
125
|
+
clickEaterElement.addEventListener(
|
|
126
|
+
"mousemove",
|
|
127
|
+
clickEaterMouseMoveListener
|
|
128
|
+
);
|
|
129
|
+
};
|
|
130
|
+
beforeFlyoutHides = function () {
|
|
131
|
+
clickEaterElement.removeEventListener(
|
|
132
|
+
"mousemove",
|
|
133
|
+
clickEaterMouseMoveListener
|
|
134
|
+
);
|
|
135
|
+
boundedConvexPolygon = null;
|
|
136
|
+
flyout.removeEventListener("aftershow", afterFlyoutShows);
|
|
137
|
+
flyout.removeEventListener("beforehide", beforeFlyoutHides);
|
|
138
|
+
};
|
|
139
|
+
clickEaterMouseMoveListener = function (mouseevent) {
|
|
140
|
+
var curPos = { x: mouseevent.clientX, y: mouseevent.clientY };
|
|
141
|
+
if (!isPointInsideConvexPolygon(curPos, boundedConvexPolygon)) {
|
|
142
|
+
flyout.hide();
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
var frequency = null;
|
|
146
|
+
var interval = null;
|
|
147
|
+
var hightlightedDates = ko.pureComputed(function () {
|
|
148
|
+
var hightlighted = [];
|
|
149
|
+
nodeStatus().forEach(function (nodeStatusRow) {
|
|
150
|
+
nodeStatusRow.forEach(function (nodeStatusField) {
|
|
151
|
+
hightlighted.push(nodeStatusField.date.getTime());
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
return hightlighted;
|
|
155
|
+
});
|
|
156
|
+
var calendarPageCallback = function (dateRange) {
|
|
157
|
+
var deferred = Q.defer();
|
|
158
|
+
getActivityWindows(
|
|
159
|
+
value.additionalQueryFilter,
|
|
160
|
+
dateRange.startDate,
|
|
161
|
+
dateRange.endDate
|
|
162
|
+
).then(
|
|
163
|
+
function (activityWindows) {
|
|
164
|
+
if (
|
|
165
|
+
activityWindows.length > 0 &&
|
|
166
|
+
value.recentActivityWindows &&
|
|
167
|
+
value.recentActivityWindows().length === 0
|
|
168
|
+
) {
|
|
169
|
+
value.recentActivityWindows.push(activityWindows[0]);
|
|
170
|
+
} else if (
|
|
171
|
+
activityWindows.length === 0 &&
|
|
172
|
+
value.recentActivityWindows &&
|
|
173
|
+
value.recentActivityWindows().length > 0
|
|
174
|
+
) {
|
|
175
|
+
activityWindows.push(value.recentActivityWindows()[0]);
|
|
176
|
+
}
|
|
177
|
+
var data = activityWindows.map(function (activityWindow) {
|
|
178
|
+
var windowStartTime = new Date(activityWindow().windowStart);
|
|
179
|
+
var statusBox = {
|
|
180
|
+
date: windowStartTime,
|
|
181
|
+
status: ko.pureComputed(function () {
|
|
182
|
+
return activityWindow().statusCalendarStatus;
|
|
183
|
+
}),
|
|
184
|
+
tooltip: ko.pureComputed(function () {
|
|
185
|
+
return ClientResources.statusCalendarBoxTooltip.format(
|
|
186
|
+
activityWindow().displayState,
|
|
187
|
+
activityWindow().windowStartPair.UTC,
|
|
188
|
+
activityWindow().windowEndPair.UTC
|
|
189
|
+
);
|
|
190
|
+
}),
|
|
191
|
+
};
|
|
192
|
+
statusBox.clickCallback = function (statusBoxArg) {
|
|
193
|
+
statusCalendar.updateSelection(statusBoxArg.date);
|
|
194
|
+
AppContext.AppContext.getInstance().selectionHandler.pushState(
|
|
195
|
+
GraphNodeStatusBindingHandler.className,
|
|
196
|
+
[new ActivityWindowModel.Encodable(activityWindow)]
|
|
197
|
+
);
|
|
198
|
+
};
|
|
199
|
+
statusBox.doubleClickCallback = function (statusBoxArg) {
|
|
200
|
+
statusBox.clickCallback(statusBoxArg);
|
|
201
|
+
AppContext.AppContext.getInstance().openActivityWindowExplorer();
|
|
202
|
+
};
|
|
203
|
+
return statusBox;
|
|
204
|
+
});
|
|
205
|
+
deferred.resolve(data);
|
|
206
|
+
},
|
|
207
|
+
function (reason) {
|
|
208
|
+
logger.logError(
|
|
209
|
+
"Could not load data: {0}".format(reason.responseText)
|
|
210
|
+
);
|
|
211
|
+
deferred.reject(
|
|
212
|
+
"StatusCalendarFlyoutKnockoutBinding: Could not load data."
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
);
|
|
216
|
+
return deferred.promise;
|
|
217
|
+
};
|
|
218
|
+
var showFlyout = function () {
|
|
219
|
+
setTimeout(function () {
|
|
220
|
+
if (
|
|
221
|
+
value.availabilityPromise.isFulfilled() &&
|
|
222
|
+
!value.availabilityPromise.isRejected() &&
|
|
223
|
+
$(element).is(":hover")
|
|
224
|
+
) {
|
|
225
|
+
frequency = availability.frequency();
|
|
226
|
+
interval = availability.interval();
|
|
227
|
+
var footer = [
|
|
228
|
+
ClientResources.frequencyAndIntervalText.format(
|
|
229
|
+
frequency,
|
|
230
|
+
interval
|
|
231
|
+
),
|
|
232
|
+
ClientResources.datetimeInUTCLabel,
|
|
233
|
+
];
|
|
234
|
+
var returnVal = StatusCalendar.findCorrectFrequencyAndInterval(
|
|
235
|
+
frequency,
|
|
236
|
+
interval
|
|
237
|
+
);
|
|
238
|
+
frequency = returnVal[0];
|
|
239
|
+
interval = returnVal[1];
|
|
240
|
+
var curDate = viewContext.dateRange().endDate;
|
|
241
|
+
statusCalendar
|
|
242
|
+
.update({
|
|
243
|
+
header: value.calendarHeader,
|
|
244
|
+
subHeader: ClientResources.activityWindowListTitle,
|
|
245
|
+
footer: footer,
|
|
246
|
+
frequency: frequency,
|
|
247
|
+
interval: interval,
|
|
248
|
+
pageCallback: calendarPageCallback,
|
|
249
|
+
baseDate: curDate,
|
|
250
|
+
dateRange: viewContext.dateRange(),
|
|
251
|
+
highlightedDates: hightlightedDates,
|
|
252
|
+
})
|
|
253
|
+
.then(
|
|
254
|
+
function (updateResult) {
|
|
255
|
+
flyout.addEventListener("aftershow", afterFlyoutShows);
|
|
256
|
+
flyout.show(element);
|
|
257
|
+
},
|
|
258
|
+
function (reason) {
|
|
259
|
+
if (
|
|
260
|
+
reason.result !==
|
|
261
|
+
StatusCalendar.StatusCalendarUpdateResultEnum.aborted
|
|
262
|
+
) {
|
|
263
|
+
logger.logError(
|
|
264
|
+
"Failed to update hover calendar: " + reason.reason
|
|
265
|
+
);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
}, 200);
|
|
271
|
+
};
|
|
272
|
+
element.addEventListener(actionForShow, showFlyout);
|
|
273
|
+
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
|
|
274
|
+
element.removeEventListener(actionForShow, showFlyout);
|
|
275
|
+
flyout.removeEventListener("aftershow", afterFlyoutShows);
|
|
276
|
+
flyout.removeEventListener("beforehide", beforeFlyoutHides);
|
|
277
|
+
lifetimeManager.dispose();
|
|
278
|
+
});
|
|
279
|
+
return { controlsDescendantBindings: true };
|
|
280
|
+
};
|
|
281
|
+
GraphNodeStatusBindingHandler.className =
|
|
282
|
+
DataConstants.GraphNodeStatusBindingHandler;
|
|
283
|
+
GraphNodeStatusBindingHandler.template = require("text!./Templates/GraphNodeStatusTemplate.html");
|
|
284
|
+
return GraphNodeStatusBindingHandler;
|
|
285
|
+
})();
|
|
286
|
+
exports.GraphNodeStatusBindingHandler = GraphNodeStatusBindingHandler;
|
|
287
|
+
function sideSign(a, l1, l2) {
|
|
288
|
+
var mf = l1.y - l2.y;
|
|
289
|
+
var mc = l2.y * l1.x - l1.y * l2.x;
|
|
290
|
+
return mf * a.x + mc - a.y * (l1.x - l2.x);
|
|
291
|
+
}
|
|
292
|
+
function isPointInsideConvexPolygon(p, polygon) {
|
|
293
|
+
if (polygon.length < 3) {
|
|
294
|
+
logger.logError("Too few points specified for polygon");
|
|
295
|
+
}
|
|
296
|
+
var centroid = { x: 0, y: 0 };
|
|
297
|
+
for (var i = 0; i < polygon.length; i++) {
|
|
298
|
+
centroid.x += polygon[i].x / polygon.length;
|
|
299
|
+
centroid.y += polygon[i].y / polygon.length;
|
|
300
|
+
}
|
|
301
|
+
for (var i = 0; i < polygon.length; i++) {
|
|
302
|
+
var a = polygon[i];
|
|
303
|
+
var b = polygon[(i + 1) % polygon.length];
|
|
304
|
+
if (sideSign(p, a, b) * sideSign(centroid, a, b) < 0) {
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
function getRectVertices(clientRect) {
|
|
311
|
+
var x1 = clientRect.left;
|
|
312
|
+
var x2 = clientRect.left + clientRect.width;
|
|
313
|
+
var y1 = clientRect.top;
|
|
314
|
+
var y2 = clientRect.top + clientRect.height;
|
|
315
|
+
return [
|
|
316
|
+
{ x: x1, y: y1 },
|
|
317
|
+
{ x: x2, y: y1 },
|
|
318
|
+
{ x: x2, y: y2 },
|
|
319
|
+
{ x: x1, y: y2 },
|
|
320
|
+
];
|
|
321
|
+
}
|
|
322
|
+
function getActivityWindows(filter, slotStart, slotEnd, top) {
|
|
323
|
+
var deferred = Q.defer();
|
|
324
|
+
if (!top) {
|
|
325
|
+
top = StatusCalendar.maxNumberOfSlotsInACalendar;
|
|
326
|
+
}
|
|
327
|
+
var colNames = ActivityWindowModel.ServiceColumnNames.ExtendedProperties;
|
|
328
|
+
var finalFilter = "{0} le {1} and {2} lt {3} and ({4})".format(
|
|
329
|
+
slotStart.toISOString(),
|
|
330
|
+
colNames.WindowStart,
|
|
331
|
+
colNames.WindowStart,
|
|
332
|
+
slotEnd.toISOString(),
|
|
333
|
+
filter
|
|
334
|
+
);
|
|
335
|
+
AppContext.AppContext.getInstance()
|
|
336
|
+
.viewContext.activityWindowCache.fetchTop(
|
|
337
|
+
finalFilter,
|
|
338
|
+
"{0} desc".format(colNames.WindowStart),
|
|
339
|
+
top
|
|
340
|
+
)
|
|
341
|
+
.then(
|
|
342
|
+
function (activityRunPrimaryEvents) {
|
|
343
|
+
activityRunPrimaryEvents.reverse();
|
|
344
|
+
deferred.resolve(activityRunPrimaryEvents);
|
|
345
|
+
},
|
|
346
|
+
function (reason) {
|
|
347
|
+
logger.logError(
|
|
348
|
+
"Failed to fetch activity window: {0}".format(reason.responseText)
|
|
349
|
+
);
|
|
350
|
+
deferred.reject(ClientResources.failedToFetchActivityWindowText);
|
|
351
|
+
}
|
|
352
|
+
);
|
|
353
|
+
return deferred.promise;
|
|
354
|
+
}
|
|
355
|
+
function getLastFewStatusBoxes(
|
|
356
|
+
frequency,
|
|
357
|
+
interval,
|
|
358
|
+
recentActivityWindows,
|
|
359
|
+
baseDate
|
|
360
|
+
) {
|
|
361
|
+
var recentStatus = [];
|
|
362
|
+
recentActivityWindows.forEach(function (activityWindow) {
|
|
363
|
+
recentStatus.push({
|
|
364
|
+
date: new Date(activityWindow().windowStart),
|
|
365
|
+
status: ko.pureComputed(function () {
|
|
366
|
+
return activityWindow().statusCalendarStatus;
|
|
367
|
+
}),
|
|
368
|
+
});
|
|
369
|
+
});
|
|
370
|
+
var returnVal = StatusCalendar.findCorrectFrequencyAndInterval(
|
|
371
|
+
frequency,
|
|
372
|
+
interval
|
|
373
|
+
);
|
|
374
|
+
frequency = returnVal[0];
|
|
375
|
+
interval = returnVal[1];
|
|
376
|
+
var hasGenericCalendar = StatusCalendar.hasGenericCalendar(
|
|
377
|
+
frequency,
|
|
378
|
+
interval
|
|
379
|
+
);
|
|
380
|
+
var dateRange = StatusCalendar.getStartEndDateRange(
|
|
381
|
+
baseDate,
|
|
382
|
+
frequency,
|
|
383
|
+
interval,
|
|
384
|
+
hasGenericCalendar,
|
|
385
|
+
false
|
|
386
|
+
);
|
|
387
|
+
var data = StatusCalendar.sanitizeIncomingData(
|
|
388
|
+
recentStatus,
|
|
389
|
+
dateRange,
|
|
390
|
+
frequency,
|
|
391
|
+
interval,
|
|
392
|
+
hasGenericCalendar,
|
|
393
|
+
false
|
|
394
|
+
);
|
|
395
|
+
return data;
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
//# sourceMappingURL=StatusCalendarFlyoutKnockoutBinding.js.map
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
define(["require", "exports", "../_generated/Framework"], function (
|
|
2
|
+
require,
|
|
3
|
+
exports,
|
|
4
|
+
Framework_1
|
|
5
|
+
) {
|
|
6
|
+
"use strict";
|
|
7
|
+
var StatusCalendarKnockoutBinding = (function () {
|
|
8
|
+
function StatusCalendarKnockoutBinding() {}
|
|
9
|
+
StatusCalendarKnockoutBinding.prototype.init = function (
|
|
10
|
+
element,
|
|
11
|
+
valueAccessor,
|
|
12
|
+
allBindingsAccessor,
|
|
13
|
+
viewModel,
|
|
14
|
+
bindingContext
|
|
15
|
+
) {
|
|
16
|
+
var value = valueAccessor();
|
|
17
|
+
var statusCalendar = ko.utils.unwrapObservable(value.viewModel);
|
|
18
|
+
element.innerHTML = Framework_1.StatusCalendar.StatusCalendar.template;
|
|
19
|
+
ko.applyBindings(statusCalendar, element.firstChild);
|
|
20
|
+
Framework_1.StatusCalendar.StatusCalendar.statusCalendars[value.id] =
|
|
21
|
+
statusCalendar;
|
|
22
|
+
return { controlsDescendantBindings: true };
|
|
23
|
+
};
|
|
24
|
+
StatusCalendarKnockoutBinding.className = "statusCalendar";
|
|
25
|
+
return StatusCalendarKnockoutBinding;
|
|
26
|
+
})();
|
|
27
|
+
exports.StatusCalendarKnockoutBinding = StatusCalendarKnockoutBinding;
|
|
28
|
+
var StatusBoxKnockoutBinding = (function () {
|
|
29
|
+
function StatusBoxKnockoutBinding() {}
|
|
30
|
+
StatusBoxKnockoutBinding.prototype.init = function (
|
|
31
|
+
element,
|
|
32
|
+
valueAccessor,
|
|
33
|
+
allBindingsAccessor,
|
|
34
|
+
viewModel,
|
|
35
|
+
bindingContext
|
|
36
|
+
) {
|
|
37
|
+
var statusBox = ko.utils.unwrapObservable(valueAccessor());
|
|
38
|
+
var jQueryElement = $(element);
|
|
39
|
+
var childNode = document.createElement("div");
|
|
40
|
+
element.appendChild(childNode);
|
|
41
|
+
ko.applyBindingsToNode(childNode, {
|
|
42
|
+
css: statusBox.status,
|
|
43
|
+
text: statusBox.boxLabel,
|
|
44
|
+
});
|
|
45
|
+
jQueryElement.children().addClass("center row");
|
|
46
|
+
ko.applyBindingsToNode(element, {
|
|
47
|
+
css: ko.pureComputed(function () {
|
|
48
|
+
return statusBox.highlight && statusBox.highlight()
|
|
49
|
+
? "highlight"
|
|
50
|
+
: "";
|
|
51
|
+
}),
|
|
52
|
+
attr: {
|
|
53
|
+
title: statusBox.tooltip ? statusBox.tooltip : statusBox.boxLabel,
|
|
54
|
+
},
|
|
55
|
+
style: {
|
|
56
|
+
cursor:
|
|
57
|
+
statusBox.clickCallback || statusBox.doubleClickCallback
|
|
58
|
+
? "pointer"
|
|
59
|
+
: "default",
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
jQueryElement.addClass(
|
|
63
|
+
"dataFactory-statusCalendar-statusBox dataFactory-statusCalendar-label grow no-shrink col"
|
|
64
|
+
);
|
|
65
|
+
var dblClickTimeout = 400;
|
|
66
|
+
var isDblClick = false;
|
|
67
|
+
var numberOfClicks = 0;
|
|
68
|
+
var singleClickHandler = null;
|
|
69
|
+
if (statusBox.clickCallback) {
|
|
70
|
+
singleClickHandler = function () {
|
|
71
|
+
numberOfClicks++;
|
|
72
|
+
setTimeout(function () {
|
|
73
|
+
if (!isDblClick) {
|
|
74
|
+
statusBox.clickCallback(statusBox);
|
|
75
|
+
}
|
|
76
|
+
numberOfClicks--;
|
|
77
|
+
if (numberOfClicks === 0) {
|
|
78
|
+
isDblClick = false;
|
|
79
|
+
}
|
|
80
|
+
}, dblClickTimeout);
|
|
81
|
+
};
|
|
82
|
+
jQueryElement.on("click", singleClickHandler);
|
|
83
|
+
}
|
|
84
|
+
var doubleClickHandler = null;
|
|
85
|
+
if (statusBox.doubleClickCallback) {
|
|
86
|
+
doubleClickHandler = function () {
|
|
87
|
+
isDblClick = true;
|
|
88
|
+
statusBox.doubleClickCallback(statusBox);
|
|
89
|
+
};
|
|
90
|
+
jQueryElement.on("dblclick", doubleClickHandler);
|
|
91
|
+
}
|
|
92
|
+
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
|
|
93
|
+
if (singleClickHandler) {
|
|
94
|
+
jQueryElement.off("click", singleClickHandler);
|
|
95
|
+
}
|
|
96
|
+
if (doubleClickHandler) {
|
|
97
|
+
jQueryElement.off("dblclick", doubleClickHandler);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
return { controlsDescendantBindings: true };
|
|
101
|
+
};
|
|
102
|
+
StatusBoxKnockoutBinding.className = "statusBox";
|
|
103
|
+
return StatusBoxKnockoutBinding;
|
|
104
|
+
})();
|
|
105
|
+
exports.StatusBoxKnockoutBinding = StatusBoxKnockoutBinding;
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=StatusCalendarKnockoutBinding.js.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
define([
|
|
2
|
+
"require",
|
|
3
|
+
"exports",
|
|
4
|
+
"../scripts/Framework/Util/Log",
|
|
5
|
+
"../_generated/Framework",
|
|
6
|
+
"../scripts/AppContext",
|
|
7
|
+
], function (require, exports, Log, Framework, AppContext) {
|
|
8
|
+
"use strict";
|
|
9
|
+
var Telemetry = Framework.Telemetry;
|
|
10
|
+
var logger = Log.getLogger({
|
|
11
|
+
loggerName: "TelemetryKnockoutBinding",
|
|
12
|
+
});
|
|
13
|
+
var EventConfigs;
|
|
14
|
+
(function (EventConfigs) {
|
|
15
|
+
EventConfigs.click = {
|
|
16
|
+
event: "click",
|
|
17
|
+
handleEvent: function (data, event, areaId) {
|
|
18
|
+
Telemetry.instance.logEvent(
|
|
19
|
+
new Telemetry.Event(
|
|
20
|
+
AppContext.AppContext.getInstance().factoryId(),
|
|
21
|
+
areaId,
|
|
22
|
+
Telemetry.Action.click,
|
|
23
|
+
Object.create(null)
|
|
24
|
+
)
|
|
25
|
+
);
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
})((EventConfigs = exports.EventConfigs || (exports.EventConfigs = {})));
|
|
29
|
+
var TelemetryKnockoutBindingHandler = (function () {
|
|
30
|
+
function TelemetryKnockoutBindingHandler() {}
|
|
31
|
+
TelemetryKnockoutBindingHandler.prototype.init = function (
|
|
32
|
+
element,
|
|
33
|
+
valueAccessor,
|
|
34
|
+
allBindingsAccessor,
|
|
35
|
+
viewModel,
|
|
36
|
+
bindingContext
|
|
37
|
+
) {
|
|
38
|
+
var value = ko.utils.unwrapObservable(valueAccessor());
|
|
39
|
+
if (!value.areaId || !value.configs) {
|
|
40
|
+
logger.logError("Supplying invalid value accessor.");
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
for (var index in value.configs) {
|
|
44
|
+
var config = EventConfigs[value.configs[index]];
|
|
45
|
+
var binding = {};
|
|
46
|
+
binding[config.event] = Framework.Util.curry(
|
|
47
|
+
function (config, data, event) {
|
|
48
|
+
var flag = TelemetryKnockoutBindingHandler.processedForADFTelemetry;
|
|
49
|
+
if (!event.originalEvent[flag]) {
|
|
50
|
+
config.handleEvent(data, event, value.areaId);
|
|
51
|
+
event.originalEvent[flag] = true;
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
null,
|
|
55
|
+
config
|
|
56
|
+
);
|
|
57
|
+
ko.applyBindingsToNode(element, { event: binding });
|
|
58
|
+
}
|
|
59
|
+
return { controlsDescendantBindings: false };
|
|
60
|
+
};
|
|
61
|
+
TelemetryKnockoutBindingHandler.className = "telemetry";
|
|
62
|
+
TelemetryKnockoutBindingHandler.processedForADFTelemetry =
|
|
63
|
+
"processedForADFTelemetry";
|
|
64
|
+
return TelemetryKnockoutBindingHandler;
|
|
65
|
+
})();
|
|
66
|
+
exports.TelemetryKnockoutBindingHandler = TelemetryKnockoutBindingHandler;
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=TelemetryKnockoutBinding.js.map
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
var __extends =
|
|
2
|
+
(this && this.__extends) ||
|
|
3
|
+
function (d, b) {
|
|
4
|
+
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
|
5
|
+
function __() {
|
|
6
|
+
this.constructor = d;
|
|
7
|
+
}
|
|
8
|
+
d.prototype =
|
|
9
|
+
b === null ? Object.create(b) : ((__.prototype = b.prototype), new __());
|
|
10
|
+
};
|
|
11
|
+
define(["require", "exports", "../_generated/Framework"], function (
|
|
12
|
+
require,
|
|
13
|
+
exports,
|
|
14
|
+
Framework
|
|
15
|
+
) {
|
|
16
|
+
"use strict";
|
|
17
|
+
var WinJSButtonBindingHandler = (function (_super) {
|
|
18
|
+
__extends(WinJSButtonBindingHandler, _super);
|
|
19
|
+
function WinJSButtonBindingHandler() {
|
|
20
|
+
var _this = this;
|
|
21
|
+
_super.apply(this, arguments);
|
|
22
|
+
this.init = function (
|
|
23
|
+
element,
|
|
24
|
+
valueAccessor,
|
|
25
|
+
allBindingsAccessor,
|
|
26
|
+
viewModel,
|
|
27
|
+
bindingContext
|
|
28
|
+
) {
|
|
29
|
+
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
|
|
30
|
+
_this._lifetimeManager.dispose();
|
|
31
|
+
});
|
|
32
|
+
return { controlsDescendantBindings: true };
|
|
33
|
+
};
|
|
34
|
+
this.update = function (
|
|
35
|
+
element,
|
|
36
|
+
valueAccessor,
|
|
37
|
+
allBindingsAccessor,
|
|
38
|
+
viewModel,
|
|
39
|
+
bindingContext
|
|
40
|
+
) {
|
|
41
|
+
var buttonElement = $(element)
|
|
42
|
+
.html("<button class='koMainButton'></button>")
|
|
43
|
+
.children()[0];
|
|
44
|
+
var options = ko.unwrap(valueAccessor().options);
|
|
45
|
+
_this._lifetimeManager.dispose();
|
|
46
|
+
_this._lifetimeManager =
|
|
47
|
+
new Framework.Disposable.DisposableLifetimeManager();
|
|
48
|
+
var button = new Framework.Command.Button(
|
|
49
|
+
_this._lifetimeManager,
|
|
50
|
+
options
|
|
51
|
+
).appBarCommand(buttonElement);
|
|
52
|
+
if (valueAccessor().menu) {
|
|
53
|
+
var menu = ko.unwrap(valueAccessor().menu);
|
|
54
|
+
if (menu) {
|
|
55
|
+
menu.addDropdownButton(button);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
$(buttonElement).removeClass($(buttonElement).attr("data-buttonClass"));
|
|
59
|
+
if (valueAccessor().buttonClass) {
|
|
60
|
+
$(buttonElement).addClass(ko.unwrap(valueAccessor().buttonClass));
|
|
61
|
+
$(buttonElement).attr(
|
|
62
|
+
"data-buttonClass",
|
|
63
|
+
valueAccessor().buttonClass
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return WinJSButtonBindingHandler;
|
|
69
|
+
})(Framework.Disposable.RootDisposable);
|
|
70
|
+
exports.WinJSButtonBindingHandler = WinJSButtonBindingHandler;
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=WinJSButtonKnockoutBinding.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
define(["require", "exports", "../_generated/Framework"], function (
|
|
2
|
+
require,
|
|
3
|
+
exports,
|
|
4
|
+
Framework
|
|
5
|
+
) {
|
|
6
|
+
"use strict";
|
|
7
|
+
var WinJSPivotKnockoutBinding = (function () {
|
|
8
|
+
function WinJSPivotKnockoutBinding() {}
|
|
9
|
+
WinJSPivotKnockoutBinding.prototype.init = function (
|
|
10
|
+
element,
|
|
11
|
+
valueAccessor,
|
|
12
|
+
allBindingsAccessor,
|
|
13
|
+
viewModel,
|
|
14
|
+
bindingContext
|
|
15
|
+
) {
|
|
16
|
+
var value = valueAccessor();
|
|
17
|
+
var lifetimeManager =
|
|
18
|
+
new Framework.Disposable.DisposableLifetimeManager();
|
|
19
|
+
if (value.pivotItems) {
|
|
20
|
+
value.pivotItems.forEach(function (pivotItem) {
|
|
21
|
+
var pivotItemNode = document.createElement("div");
|
|
22
|
+
pivotItemNode.innerHTML = pivotItem.template;
|
|
23
|
+
element.appendChild(pivotItemNode);
|
|
24
|
+
var pivotItemControl = new WinJS.UI.PivotItem(
|
|
25
|
+
pivotItemNode,
|
|
26
|
+
pivotItem.options
|
|
27
|
+
);
|
|
28
|
+
lifetimeManager.registerForDispose(pivotItemControl);
|
|
29
|
+
if (pivotItem.viewModel) {
|
|
30
|
+
ko.applyBindings(pivotItem.viewModel, pivotItemNode);
|
|
31
|
+
if (pivotItem.viewModel["dispose"]) {
|
|
32
|
+
lifetimeManager.registerForDispose(pivotItem.viewModel);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
var winControl = new WinJS.UI.Pivot(element, valueAccessor().options);
|
|
38
|
+
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
|
|
39
|
+
winControl.dispose();
|
|
40
|
+
lifetimeManager.dispose();
|
|
41
|
+
});
|
|
42
|
+
return { controlsDescendantBindings: true };
|
|
43
|
+
};
|
|
44
|
+
WinJSPivotKnockoutBinding.className = "WinJSPivot";
|
|
45
|
+
return WinJSPivotKnockoutBinding;
|
|
46
|
+
})();
|
|
47
|
+
exports.WinJSPivotKnockoutBinding = WinJSPivotKnockoutBinding;
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=WinJSKnockoutBindings.js.map
|