sp-dev-fx-webparts/samples/jquery-photopile/dist/photopile-web-part.bundle.js

1702 lines
71 KiB
JavaScript
Raw Normal View History

define("fd5fa211-ef67-4b5b-9f0d-6117a93e44af_0.0.1", ["@microsoft/sp-core-library","react","react-dom","@microsoft/sp-webpart-base","mystrings","@microsoft/sp-http","photopileModule","jquery","jqueryui"], function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_5__, __WEBPACK_EXTERNAL_MODULE_22__, __WEBPACK_EXTERNAL_MODULE_24__, __WEBPACK_EXTERNAL_MODULE_25__, __WEBPACK_EXTERNAL_MODULE_26__) { return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var sp_core_library_1 = __webpack_require__(1);
var React = __webpack_require__(2);
var ReactDom = __webpack_require__(3);
var sp_webpart_base_1 = __webpack_require__(4);
var strings = __webpack_require__(5);
var PhotopileWebPart_1 = __webpack_require__(6);
var SPPicturesListService_1 = __webpack_require__(21);
/**
* @class
* Defines the Photopile client side web part
*/
var PhotopileWebPartWebPart = (function (_super) {
__extends(PhotopileWebPartWebPart, _super);
/**
* @function
* Web Part constructor
*/
function PhotopileWebPartWebPart(context) {
var _this = _super.call(this) || this;
/**
* @var
* Stores the list of SharePoint Pictures library found in the current SP web
*/
_this.listsDropdownOptions = [];
return _this;
}
/**
* @function
* Function called when the web part is inialized
*/
PhotopileWebPartWebPart.prototype.onInit = function () {
var _this = this;
//Init the PicturesListService to get the picture libs
var picturesListService = new SPPicturesListService_1.SPPicturesListService(this.properties, this.context);
//Request the libs
picturesListService.getPictureLibs()
.then(function (response) {
//Store the result as list of dropdown options
_this.listsDropdownOptions = response.value.map(function (list) {
return {
key: list.Id,
text: list.Title
};
});
});
return Promise.resolve();
};
/**
* @function
* Renders the web part
*/
PhotopileWebPartWebPart.prototype.render = function () {
//Constructs the react element code to JSX
var element = React.createElement(PhotopileWebPart_1.default, {
listName: this.properties.listName,
orderBy: this.properties.orderBy,
orderByAsc: this.properties.orderByAsc,
count: this.properties.count,
numLayers: this.properties.numLayers,
thumbOverlap: this.properties.thumbOverlap,
thumbRotation: this.properties.thumbRotation,
thumbBorderWidth: this.properties.thumbBorderWidth,
thumbBorderColor: this.properties.thumbBorderColor,
thumbBorderHover: this.properties.thumbBorderHover,
draggable: this.properties.draggable,
fadeDuration: this.properties.fadeDuration,
pickupDuration: this.properties.pickupDuration,
photoZIndex: this.properties.photoZIndex,
photoBorder: this.properties.photoBorder,
photoBorderColor: this.properties.photoBorderColor,
showInfo: this.properties.showInfo,
autoplayGallery: this.properties.autoplayGallery,
autoplaySpeed: this.properties.autoplaySpeed,
context: this.context
});
//Render the dom
ReactDom.render(element, this.domElement);
};
Object.defineProperty(PhotopileWebPartWebPart.prototype, "disableReactivePropertyChanges", {
/**
* @function
* Prevent from changing the pane properties on typing
*/
get: function () {
return false;
},
enumerable: true,
configurable: true
});
Object.defineProperty(PhotopileWebPartWebPart.prototype, "dataVersion", {
/**
* @function
* Gets the web part properties panel settings
*/
get: function () {
return sp_core_library_1.Version.parse('1.0');
},
enumerable: true,
configurable: true
});
PhotopileWebPartWebPart.prototype.getPropertyPaneConfiguration = function () {
return {
pages: [
{
header: {
description: strings.PropertyPaneDescription
},
//Display the web part properties as accordion
displayGroupsAsAccordion: true,
groups: [
{
groupName: strings.PictureLibraryGroupName,
groupFields: [
sp_webpart_base_1.PropertyPaneDropdown('listName', {
label: strings.PictureLibraryFieldLabel,
options: this.listsDropdownOptions
}),
sp_webpart_base_1.PropertyPaneDropdown('orderBy', {
label: strings.OrderByFieldLabel,
options: [
{ key: 'ID', text: strings.OrderByChoiceLabelId },
{ key: 'Title', text: strings.OrderByChoiceLabelTitle },
{ key: 'Created', text: strings.OrderByChoiceLabelCreated },
{ key: 'Modified', text: strings.OrderByChoiceLabelModified },
{ key: 'ImageWidth', text: strings.OrderByChoiceLabelImageWidth },
{ key: 'ImageHeight', text: strings.OrderByChoiceLabelImageHeight }
]
}),
sp_webpart_base_1.PropertyPaneDropdown('orderByAsc', {
label: strings.OrderByAscFieldLabel,
options: [
{ key: 'asc', text: strings.OrderByAscChoiceLabel },
{ key: 'desc', text: strings.OrderByDescChoiceLabel }
]
}),
sp_webpart_base_1.PropertyPaneSlider('count', {
label: strings.PictureLibraryCountLabel,
min: 1,
max: 100,
step: 1,
showValue: true
})
]
},
{
groupName: strings.ThumbnailsGroupName,
groupFields: [
sp_webpart_base_1.PropertyPaneSlider('numLayers', {
label: strings.NumLayersFieldLabel,
min: 1,
max: 20,
step: 1,
showValue: true
}),
sp_webpart_base_1.PropertyPaneSlider('thumbOverlap', {
label: strings.ThumbOverlabFieldLabel,
min: 1,
max: 130,
step: 1,
showValue: true
}),
sp_webpart_base_1.PropertyPaneSlider('thumbRotation', {
label: strings.ThumbRotationFieldLabel,
min: 0,
max: 360,
step: 1,
showValue: true
}),
sp_webpart_base_1.PropertyPaneSlider('thumbBorderWidth', {
label: strings.ThumbBorderWidthFieldLabel,
min: 0,
max: 50,
step: 1,
showValue: true
}),
sp_webpart_base_1.PropertyPaneTextField('thumbBorderColor', {
label: strings.ThumbBorderColorFieldLabel
}),
sp_webpart_base_1.PropertyPaneTextField('thumbBorderHover', {
label: strings.ThumbBorderHoverFieldLabel
}),
sp_webpart_base_1.PropertyPaneToggle('draggable', {
label: strings.DraggableFieldLabel
})
]
},
{
groupName: strings.PhotoContainerGroupName,
groupFields: [
sp_webpart_base_1.PropertyPaneSlider('fadeDuration', {
label: strings.FadeDurationFieldLabel,
min: 0,
max: 5000,
step: 100,
showValue: true
}),
sp_webpart_base_1.PropertyPaneSlider('pickupDuration', {
label: strings.PickupDurationFieldLabel,
min: 0,
max: 5000,
step: 100,
showValue: true
}),
sp_webpart_base_1.PropertyPaneSlider('photoZIndex', {
label: strings.PhotoZIndexFieldLabel,
min: 1,
max: 1000,
step: 1,
showValue: true
}),
sp_webpart_base_1.PropertyPaneSlider('photoBorder', {
label: strings.PhotoBorderFieldLabel,
min: 0,
max: 50,
step: 1,
showValue: true
}),
sp_webpart_base_1.PropertyPaneTextField('photoBorderColor', {
label: strings.PhotoBorderColorFieldLabel
}),
sp_webpart_base_1.PropertyPaneToggle('showInfo', {
label: strings.ShowInfoFieldLabel
})
]
},
{
groupName: strings.AutoplayGroupName,
groupFields: [
sp_webpart_base_1.PropertyPaneToggle('autoplayGallery', {
label: strings.AutoplayGalleryFieldLabel
}),
sp_webpart_base_1.PropertyPaneSlider('autoplaySpeed', {
label: strings.AutoplaySpeedFieldLabel,
min: 0,
max: 5000,
step: 100,
showValue: true
})
]
}
]
}
]
};
};
return PhotopileWebPartWebPart;
}(sp_webpart_base_1.BaseClientSideWebPart));
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = PhotopileWebPartWebPart;
/***/ },
/* 1 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_1__;
/***/ },
/* 2 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_2__;
/***/ },
/* 3 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_3__;
/***/ },
/* 4 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_4__;
/***/ },
/* 5 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_5__;
/***/ },
/* 6 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
/**
* @file
* Photopile Web Part React JSX component.
*
* Contains JSX code to render the web part with HTML templates.
*
* Author: Olivier Carpentier
*/
var React = __webpack_require__(2);
var Spinner_1 = __webpack_require__(7);
var strings = __webpack_require__(5);
var PhotopileWebPart_module_scss_1 = __webpack_require__(16);
var SPPicturesListService_1 = __webpack_require__(21);
var photopile = __webpack_require__(24);
__webpack_require__(25);
__webpack_require__(26);
__webpack_require__(27);
__webpack_require__(24);
/**
* @class
* Defines Photopile web part class.
*/
var PhotopileWebPart = (function (_super) {
__extends(PhotopileWebPart, _super);
/**
* @function
* Photopile web part contructor.
*/
function PhotopileWebPart(props, context) {
var _this = _super.call(this, props, context) || this;
//Save the context
_this.myPageContext = props.context;
//Init the component state
_this.state = {
results: [],
loaded: false
};
return _this;
}
;
/**
* @function
* JSX Element render method
*/
PhotopileWebPart.prototype.render = function () {
if (this.props.listName == null || this.props.listName == '') {
//Display select a list message
return (React.createElement("div", { className: "ms-MessageBar" },
React.createElement("div", { className: "ms-MessageBar-content" },
React.createElement("div", { className: "ms-MessageBar-icon" },
React.createElement("i", { className: "ms-Icon ms-Icon--infoCircle" })),
React.createElement("div", { className: "ms-MessageBar-text" }, strings.ErrorSelectList))));
}
else {
if (this.state.loaded == false) {
//Display the loading spinner with the Office UI Fabric Spinner control
return (React.createElement("div", { className: PhotopileWebPart_module_scss_1.default.photopileWebPart },
React.createElement("div", { className: PhotopileWebPart_module_scss_1.default.workingOnItSpinner },
React.createElement(Spinner_1.Spinner, { type: Spinner_1.SpinnerType.normal }),
React.createElement("div", { className: PhotopileWebPart_module_scss_1.default.loadingLabel },
React.createElement("label", { className: "ms-Label" },
" ",
strings.Loading)))));
}
else if (this.state.results.length == 0) {
//Display message no items
return (React.createElement("div", { className: "ms-MessageBar ms-MessageBar--error" },
React.createElement("div", { className: "ms-MessageBar-content" },
React.createElement("div", { className: "ms-MessageBar-icon" },
React.createElement("i", { className: "ms-Icon ms-Icon--xCircle" })),
React.createElement("div", { className: "ms-MessageBar-text" }, strings.ErrorNoItems))));
}
else {
//Display the items list
return (React.createElement("div", { className: 'photopile-wrapper' },
React.createElement("ul", { className: 'photopile' }, this.state.results.map(function (object, i) {
//Select the best Alt text with title, description or file's name
var altText = object.Title;
if (altText == null || altText == '')
altText = object.Description;
if (altText == null || altText == '')
altText = object.File.Name;
//Render the item
return (React.createElement("li", null,
React.createElement("a", { href: object.File.ServerRelativeUrl },
React.createElement("img", { src: object.File.ThumbnailServerUrl, alt: altText, width: "133", height: "100" }))));
}))));
}
}
};
/**
* @function
* Function called when the component did mount
*/
PhotopileWebPart.prototype.componentDidMount = function () {
var _this = this;
if (this.props.listName != null && this.props.listName != '') {
//Init the Picture list service
var picturesListService = new SPPicturesListService_1.SPPicturesListService(this.props, this.myPageContext);
//Load the list of pictures from the current lib
picturesListService.getPictures(this.props.listName)
.then(function (response) {
//Modify the component state with the json result
_this.setState({ results: response.value, loaded: true });
});
}
};
/**
* @function
* Function called when the web part properties has changed
*/
PhotopileWebPart.prototype.componentWillReceiveProps = function (nextProps) {
var _this = this;
//Define the state with empty results
this.setState({ results: [], loaded: false });
if (nextProps.listName != null && nextProps.listName != '') {
//Init the Picture list service
var picturesListService = new SPPicturesListService_1.SPPicturesListService(nextProps, this.myPageContext);
//Load the list of pictures from the current lib
picturesListService.getPictures(nextProps.listName)
.then(function (response) {
//Modify the component state with the json result
_this.setState({ results: response.value, loaded: true });
});
}
};
/**
* @function
* Function called when the component has been rendered (ie HTML code is ready)
*/
PhotopileWebPart.prototype.componentDidUpdate = function (prevProps, prevState) {
if (this.state.loaded) {
//Init photopile options
photopile.setNumLayers(this.props.numLayers);
photopile.setThumbOverlap(this.props.thumbOverlap);
photopile.setThumbRotation(this.props.thumbRotation);
photopile.setThumbBorderWidth(this.props.thumbBorderWidth);
photopile.setThumbBorderColor(this.props.thumbBorderColor);
photopile.setThumbBorderHover(this.props.thumbBorderHover);
photopile.setDraggable(this.props.draggable);
photopile.setFadeDuration(this.props.fadeDuration);
photopile.setPickupDuration(this.props.pickupDuration);
photopile.setPhotoZIndex(this.props.photoZIndex);
photopile.setPhotoBorder(this.props.photoBorder);
photopile.setPhotoBorderColor(this.props.photoBorderColor);
photopile.setShowInfo(this.props.showInfo);
photopile.setAutoplayGallery(this.props.autoplayGallery);
photopile.setAutoplaySpeed(this.props.autoplaySpeed);
//Init photopile
photopile.scatter();
}
};
return PhotopileWebPart;
}(React.Component));
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = PhotopileWebPart;
/***/ },
/* 7 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
__export(__webpack_require__(8));
/***/ },
/* 8 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
__export(__webpack_require__(9));
__export(__webpack_require__(10));
/***/ },
/* 9 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var React = __webpack_require__(2);
var Spinner_Props_1 = __webpack_require__(10);
var rtl_1 = __webpack_require__(11);
var css_1 = __webpack_require__(13);
__webpack_require__(14);
var CIRCLE_COUNT = 8;
var PARENT_SIZE_LARGE = 28;
var PARENT_SIZE_NORMAL = 20;
var OFFSET_SIZE_LARGE = 0.179;
var OFFSET_SIZE_NORMAL = 0.2;
var Spinner = (function (_super) {
__extends(Spinner, _super);
function Spinner() {
_super.apply(this, arguments);
}
Spinner.prototype.render = function () {
var _a = this.props, type = _a.type, label = _a.label, className = _a.className;
var isRTL = rtl_1.getRTL();
var parentSize = type === Spinner_Props_1.SpinnerType.large ? PARENT_SIZE_LARGE : PARENT_SIZE_NORMAL;
var offsetSize = type === Spinner_Props_1.SpinnerType.large ? OFFSET_SIZE_LARGE : OFFSET_SIZE_NORMAL;
var offset = parentSize * offsetSize;
var step = (2 * Math.PI) / CIRCLE_COUNT;
var angle = 0;
var i = CIRCLE_COUNT;
var radius = (parentSize - offset) * 0.5;
var circleObjects = [];
while (i--) {
var x = Math.round(parentSize * 0.5 + radius * Math.cos(angle)) - offset * 0.5;
var y = Math.round(parentSize * 0.5 + radius * Math.sin(angle)) - offset * 0.5;
var size = offset + 'px';
var style = { left: !isRTL ? x : 'auto', right: !isRTL ? 'auto' : x, top: y, width: size, height: size };
angle += step;
circleObjects.push(React.createElement("div", {className: 'ms-Spinner-circle', key: i, style: style}));
}
return (React.createElement("div", {className: css_1.css('ms-Spinner', className, {
'ms-Spinner--large': type === Spinner_Props_1.SpinnerType.large
})}, label && (React.createElement("div", {className: 'ms-Spinner-label', role: 'alert'}, label)), circleObjects));
};
Spinner.defaultProps = {
type: Spinner_Props_1.SpinnerType.normal
};
return Spinner;
}(React.Component));
exports.Spinner = Spinner;
/***/ },
/* 10 */
/***/ function(module, exports) {
"use strict";
(function (SpinnerType) {
SpinnerType[SpinnerType["normal"] = 0] = "normal";
SpinnerType[SpinnerType["large"] = 1] = "large";
})(exports.SpinnerType || (exports.SpinnerType = {}));
var SpinnerType = exports.SpinnerType;
/***/ },
/* 11 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var KeyCodes_1 = __webpack_require__(12);
var _isRTL;
/**
* Gets the rtl state of the page (returns true if in rtl.)
*/
function getRTL() {
if (_isRTL === undefined) {
_isRTL = document.documentElement.getAttribute('dir') === 'rtl';
}
return _isRTL;
}
exports.getRTL = getRTL;
/**
* Sets the rtl state of the page (by adjusting the dir attribute of the html element.)
*/
function setRTL(isRTL) {
document.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');
_isRTL = isRTL;
}
exports.setRTL = setRTL;
/**
* Returns the given key, but flips right/left arrows if necessary.
*/
function getRTLSafeKeyCode(key) {
if (getRTL()) {
if (key === KeyCodes_1.KeyCodes.left) {
key = KeyCodes_1.KeyCodes.right;
}
else if (key === KeyCodes_1.KeyCodes.right) {
key = KeyCodes_1.KeyCodes.left;
}
}
return key;
}
exports.getRTLSafeKeyCode = getRTLSafeKeyCode;
/***/ },
/* 12 */
/***/ function(module, exports) {
"use strict";
(function (KeyCodes) {
KeyCodes[KeyCodes["a"] = 65] = "a";
KeyCodes[KeyCodes["backspace"] = 8] = "backspace";
KeyCodes[KeyCodes["comma"] = 188] = "comma";
KeyCodes[KeyCodes["del"] = 46] = "del";
KeyCodes[KeyCodes["down"] = 40] = "down";
KeyCodes[KeyCodes["end"] = 35] = "end";
KeyCodes[KeyCodes["enter"] = 13] = "enter";
KeyCodes[KeyCodes["escape"] = 27] = "escape";
KeyCodes[KeyCodes["home"] = 36] = "home";
KeyCodes[KeyCodes["left"] = 37] = "left";
KeyCodes[KeyCodes["pageDown"] = 34] = "pageDown";
KeyCodes[KeyCodes["pageUp"] = 33] = "pageUp";
KeyCodes[KeyCodes["right"] = 39] = "right";
KeyCodes[KeyCodes["semicolon"] = 186] = "semicolon";
KeyCodes[KeyCodes["space"] = 32] = "space";
KeyCodes[KeyCodes["tab"] = 9] = "tab";
KeyCodes[KeyCodes["up"] = 38] = "up";
})(exports.KeyCodes || (exports.KeyCodes = {}));
var KeyCodes = exports.KeyCodes;
/***/ },
/* 13 */
/***/ function(module, exports) {
"use strict";
function css() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i - 0] = arguments[_i];
}
var classes = [];
for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
var arg = args_1[_a];
if (arg) {
if (typeof arg === 'string') {
classes.push(arg);
}
else {
for (var key in arg) {
if (arg[key]) {
classes.push(key);
}
}
}
}
}
return classes.join(' ');
}
exports.css = css;
/***/ },
/* 14 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var load_themed_styles_1 = __webpack_require__(15);
load_themed_styles_1.loadStyles('.ms-Spinner{position:relative;height:20px}.ms-Spinner.ms-Spinner--large{height:28px}.ms-Spinner.ms-Spinner--large .ms-Spinner-label{left:34px;top:6px}.ms-Spinner-circle{position:absolute;border-radius:100px;background-color:#0078d7;opacity:0}@media screen and (-ms-high-contrast:active){.ms-Spinner-circle{background-color:#fff}}@media screen and (-ms-high-contrast:black-on-white){.ms-Spinner-circle{background-color:#000}}.ms-Spinner-label{position:relative;color:#333;font-family:"Segoe UI Regular WestEuropean","Segoe UI",Tahoma,Arial,sans-serif;font-size:12px;font-weight:400;color:#0078d7;left:28px;top:2px}[dir=ltr] .ms-Spinner.ms-Spinner--large .ms-Spinner-label{left:34px}[dir=rtl] .ms-Spinner.ms-Spinner--large .ms-Spinner-label{right:34px}[dir=ltr] .ms-Spinner-label{left:28px}[dir=rtl] .ms-Spinner-label{right:28px}@-webkit-keyframes pulse{0%{opacity:1}100%{opacity:0}}@keyframes pulse{0%{opacity:1}100%{opacity:0}}.ms-Spinner-circle{position:absolute;border-radius:100px;background-color:#0078d7;opacity:0;-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-duration:750ms;animation-duration:750ms;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.ms-Spinner-circle:nth-child(1){opacity:.875;-webkit-animation-delay:.093s;animation-delay:.093s}.ms-Spinner-circle:nth-child(2){opacity:.75;-webkit-animation-delay:.187s;animation-delay:.187s}.ms-Spinner-circle:nth-child(3){opacity:.625;-webkit-animation-delay:.281s;animation-delay:.281s}.ms-Spinner-circle:nth-child(4){opacity:.5;-webkit-animation-delay:375ms;animation-delay:375ms}.ms-Spinner-circle:nth-child(5){opacity:.375;-webkit-animation-delay:.468s;animation-delay:.468s}.ms-Spinner-circle:nth-child(6){opacity:.25;-webkit-animation-delay:.562s;animation-delay:.562s}.ms-Spinner-circle:nth-child(7){opacity:.125;-webkit-animation-delay:.656s;animation-delay:.656s}');
/***/ },
/* 15 */
/***/ function(module, exports) {
"use strict";
;
;
// IE needs to inject styles using cssText. However, we need to evaluate this lazily, so this
// value will initialize as undefined, and later will be set once on first loadStyles injection.
var _injectStylesWithCssText;
// Store the theming state in __themeState__ global scope for reuse in the case of duplicate
// load-themed-styles hosted on the page.
var _root = (typeof window === 'undefined') ? {} : window;
var _themeState = _root.__themeState__ = _root.__themeState__ || {
theme: null,
lastStyleElement: null,
registeredStyles: []
};
/**
* Matches theming tokens. For example, "[theme: themeSlotName, default: #FFF]" (including the quotes).
*/
/* tslint:disable: max-line-length */
var _themeTokenRegex = /[\'\"]\[theme:\s*(\w+)\s*(?:\,\s*default:\s*([\\"\']?[\.\,\(\)\#\-\s\w]*[\.\,\(\)\#\-\w][\"\']?))?\s*\][\'\"]/g;
/* tslint:enable: max-line-length */
/** Maximum style text length, for supporting IE style restrictions. */
var MAX_STYLE_CONTENT_SIZE = 10000;
/**
* Loads a set of style text. If it is registered too early, we will register it when the window.load
* event is fired.
* @param {string | ThemableArray} styles Themable style text to register.
*/
function loadStyles(styles) {
var styleParts = Array.isArray(styles) ? styles : splitStyles(styles);
if (_injectStylesWithCssText === undefined) {
_injectStylesWithCssText = shouldUseCssText();
}
applyThemableStyles(styleParts);
}
exports.loadStyles = loadStyles;
/**
* Loads a set of style text. If it is registered too early, we will register it when the window.load event
* is fired.
* @param {string} styleText Style to register.
* @param {IStyleRecord} styleRecord Existing style record to re-apply.
*/
function applyThemableStyles(styles, styleRecord) {
_injectStylesWithCssText ?
registerStylesIE(styles, styleRecord) :
registerStyles(styles, styleRecord);
}
/**
* Registers a set theme tokens to find and replace. If styles were already registered, they will be
* replaced.
* @param {any} theme JSON object of theme tokens to values.
*/
function loadTheme(theme) {
_themeState.theme = theme;
// reload styles.
reloadStyles();
}
exports.loadTheme = loadTheme;
/**
* Reloads styles.
* @param {any} theme JSON object of theme tokens to values.
*/
function reloadStyles() {
if (_themeState.theme) {
for (var _i = 0, _a = _themeState.registeredStyles; _i < _a.length; _i++) {
var styleRecord = _a[_i];
applyThemableStyles(styleRecord.themableStyle, styleRecord);
}
}
}
/**
* Find theme tokens and replaces them with provided theme values.
* @param {string} styles Tokenized styles to fix.
*/
function detokenize(styles) {
if (styles) {
styles = resolveThemableArray(splitStyles(styles));
}
return styles;
}
exports.detokenize = detokenize;
/**
* Resolves ThemingInstruction objects in an array and joins the result into a string.
* @param {ThemableArray} splitStyleArray ThemableArray to resolve and join.
*/
function resolveThemableArray(splitStyleArray) {
var theme = _themeState.theme;
var resolvedCss;
if (splitStyleArray) {
// Resolve the array of theming instructions to an array of strings.
// Then join the array to produce the final CSS string.
var resolvedArray = splitStyleArray.map(function (currentValue) {
var themeSlot = currentValue.theme;
if (themeSlot != null) {
// A theming annotation. Resolve it.
var themedValue = theme ? theme[themeSlot] : null;
var defaultValue = currentValue.defaultValue;
// Warn to console if we hit an unthemed value even when themes are provided.
// Allow the themedValue to be null to explicitly request the default value.
if (theme && !themedValue && console && !(themeSlot in theme)) {
/* tslint:disable: max-line-length */
console.warn("Theming value not provided for \"" + themeSlot + "\". Falling back to \"" + (defaultValue || 'inherit') + "\".");
}
return themedValue || defaultValue || 'inherit';
}
else {
// A non-themable string. Preserve it.
return currentValue.rawString;
}
});
resolvedCss = resolvedArray.join('');
}
return resolvedCss;
}
/**
* Split tokenized CSS into an array of strings and theme specification objects
* @param {string} styles Tokenized styles to split.
*/
function splitStyles(styles) {
var result = [];
if (styles) {
var pos = 0; // Current position in styles.
var tokenMatch = void 0;
while (tokenMatch = _themeTokenRegex.exec(styles)) {
var matchIndex = tokenMatch.index;
if (matchIndex > pos) {
result.push({
rawString: styles.substring(pos, matchIndex)
});
}
result.push({
theme: tokenMatch[1],
defaultValue: tokenMatch[2] // May be undefined
});
// index of the first character after the current match
pos = _themeTokenRegex.lastIndex;
}
// Push the rest of the string after the last match.
result.push({
rawString: styles.substring(pos)
});
}
return result;
}
exports.splitStyles = splitStyles;
/**
* Registers a set of style text. If it is registered too early, we will register it when the
* window.load event is fired.
* @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.
* @param {IStyleRecord} styleRecord May specify a style Element to update.
*/
function registerStyles(styleArray, styleRecord) {
var head = document.getElementsByTagName('head')[0];
var styleElement = document.createElement('style');
styleElement.type = 'text/css';
styleElement.appendChild(document.createTextNode(resolveThemableArray(styleArray)));
if (styleRecord) {
head.replaceChild(styleElement, styleRecord.styleElement);
styleRecord.styleElement = styleElement;
}
else {
head.appendChild(styleElement);
}
if (!styleRecord) {
_themeState.registeredStyles.push({
styleElement: styleElement,
themableStyle: styleArray
});
}
}
/**
* Registers a set of style text, for IE 9 and below, which has a ~30 style element limit so we need
* to register slightly differently.
* @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.
* @param {IStyleRecord} styleRecord May specify a style Element to update.
*/
function registerStylesIE(styleArray, styleRecord) {
var head = document.getElementsByTagName('head')[0];
var lastStyleElement = _themeState.lastStyleElement, registeredStyles = _themeState.registeredStyles;
var stylesheet = lastStyleElement ? lastStyleElement.styleSheet : null;
var lastStyleContent = stylesheet ? stylesheet.cssText : '';
var lastRegisteredStyle = registeredStyles[registeredStyles.length - 1];
var resolvedStyleText = resolveThemableArray(styleArray);
if (!lastStyleElement || (lastStyleContent.length + resolvedStyleText.length) > MAX_STYLE_CONTENT_SIZE) {
lastStyleElement = document.createElement('style');
lastStyleElement.type = 'text/css';
if (styleRecord) {
head.replaceChild(lastStyleElement, styleRecord.styleElement);
styleRecord.styleElement = lastStyleElement;
}
else {
head.appendChild(lastStyleElement);
}
if (!styleRecord) {
lastRegisteredStyle = {
styleElement: lastStyleElement,
themableStyle: styleArray
};
registeredStyles.push(lastRegisteredStyle);
}
}
lastStyleElement.styleSheet.cssText += detokenize(resolvedStyleText);
Array.prototype.push.apply(lastRegisteredStyle.themableStyle, styleArray); // concat in-place
// Preserve the theme state.
_themeState.lastStyleElement = lastStyleElement;
}
/**
* Checks to see if styleSheet exists as a property off of a style element.
* This will determine if style registration should be done via cssText (<= IE9) or not
*/
function shouldUseCssText() {
var useCSSText = false;
if (typeof document !== 'undefined') {
var emptyStyle = document.createElement('style');
emptyStyle.type = 'text/css';
useCSSText = !!emptyStyle.styleSheet;
}
return useCSSText;
}
/***/ },
/* 16 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
/* tslint:disable */
__webpack_require__(17);
var styles = {
photopileWebPart: 'photopileWebPart_44ab54de',
workingOnItSpinner: 'workingOnItSpinner_44ab54de',
loadingLabel: 'loadingLabel_44ab54de',
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = styles;
/* tslint:enable */
/***/ },
/* 17 */
/***/ function(module, exports, __webpack_require__) {
var content = __webpack_require__(18);
var loader = __webpack_require__(20);
if(typeof content === "string") content = [[module.id, content]];
// add the styles to the DOM
for (var i = 0; i < content.length; i++) loader.loadStyles(content[i][1]);
if(content.locals) module.exports = content.locals;
/***/ },
/* 18 */
/***/ function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(19)();
// imports
// module
exports.push([module.id, ".photopileWebPart_44ab54de .workingOnItSpinner_44ab54de{display:block;top:0;bottom:0;margin:auto;height:33.33333%;line-height:1.5em;padding:20px 20px}.photopileWebPart_44ab54de .loadingLabel_44ab54de{position:relative;top:-25px;left:35px}", ""]);
// exports
/***/ },
/* 19 */
/***/ function(module, exports) {
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
module.exports = function() {
var list = [];
// return the list of modules as css string
list.toString = function toString() {
var result = [];
for(var i = 0; i < this.length; i++) {
var item = this[i];
if(item[2]) {
result.push("@media " + item[2] + "{" + item[1] + "}");
} else {
result.push(item[1]);
}
}
return result.join("");
};
// import a list of modules into the list
list.i = function(modules, mediaQuery) {
if(typeof modules === "string")
modules = [[null, modules, ""]];
var alreadyImportedModules = {};
for(var i = 0; i < this.length; i++) {
var id = this[i][0];
if(typeof id === "number")
alreadyImportedModules[id] = true;
}
for(i = 0; i < modules.length; i++) {
var item = modules[i];
// skip already imported module
// this implementation is not 100% perfect for weird media query combinations
// when a module is imported multiple times with different media queries.
// I hope this will never occur (Hey this way we have smaller bundles)
if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
if(mediaQuery && !item[2]) {
item[2] = mediaQuery;
} else if(mediaQuery) {
item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
}
list.push(item);
}
}
};
return list;
};
/***/ },
/* 20 */
/***/ function(module, exports) {
/* WEBPACK VAR INJECTION */(function(global) {/**
* An IThemingInstruction can specify a rawString to be preserved or a theme slot and a default value
* to use if that slot is not specified by the theme.
*/
"use strict";
// IE needs to inject styles using cssText. However, we need to evaluate this lazily, so this
// value will initialize as undefined, and later will be set once on first loadStyles injection.
var _injectStylesWithCssText;
// Store the theming state in __themeState__ global scope for reuse in the case of duplicate
// load-themed-styles hosted on the page.
var _root = (typeof window === 'undefined') ? global : window; // tslint:disable-line:no-any
var _themeState = _root.__themeState__ = _root.__themeState__ || {
theme: undefined,
lastStyleElement: undefined,
registeredStyles: []
};
/**
* Matches theming tokens. For example, "[theme: themeSlotName, default: #FFF]" (including the quotes).
*/
/* tslint:disable: max-line-length */
var _themeTokenRegex = /[\'\"]\[theme:\s*(\w+)\s*(?:\,\s*default:\s*([\\"\']?[\.\,\(\)\#\-\s\w]*[\.\,\(\)\#\-\w][\"\']?))?\s*\][\'\"]/g;
/* tslint:enable: max-line-length */
/** Maximum style text length, for supporting IE style restrictions. */
var MAX_STYLE_CONTENT_SIZE = 10000;
/**
* Loads a set of style text. If it is registered too early, we will register it when the window.load
* event is fired.
* @param {string | ThemableArray} styles Themable style text to register.
*/
function loadStyles(styles) {
var styleParts = Array.isArray(styles) ? styles : splitStyles(styles);
if (_injectStylesWithCssText === undefined) {
_injectStylesWithCssText = shouldUseCssText();
}
applyThemableStyles(styleParts);
}
exports.loadStyles = loadStyles;
/**
* Allows for customizable loadStyles logic. e.g. for server side rendering application
* @param {(styles: string) => void} a loadStyles callback that gets called when styles are loaded or reloaded
*/
function configureLoadStyles(callback) {
_themeState.loadStyles = callback;
}
exports.configureLoadStyles = configureLoadStyles;
/**
* Loads a set of style text. If it is registered too early, we will register it when the window.load event
* is fired.
* @param {string} styleText Style to register.
* @param {IStyleRecord} styleRecord Existing style record to re-apply.
*/
function applyThemableStyles(stylesArray, styleRecord) {
if (_themeState.loadStyles) {
var styles = resolveThemableArray(stylesArray);
_themeState.loadStyles(styles);
}
else {
_injectStylesWithCssText ?
registerStylesIE(stylesArray, styleRecord) :
registerStyles(stylesArray, styleRecord);
}
}
/**
* Registers a set theme tokens to find and replace. If styles were already registered, they will be
* replaced.
* @param {theme} theme JSON object of theme tokens to values.
*/
function loadTheme(theme) {
_themeState.theme = theme;
// reload styles.
reloadStyles();
}
exports.loadTheme = loadTheme;
/**
* Reloads styles.
*/
function reloadStyles() {
if (_themeState.theme) {
for (var _i = 0, _a = _themeState.registeredStyles; _i < _a.length; _i++) {
var styleRecord = _a[_i];
applyThemableStyles(styleRecord.themableStyle, styleRecord);
}
}
}
/**
* Find theme tokens and replaces them with provided theme values.
* @param {string} styles Tokenized styles to fix.
*/
function detokenize(styles) {
if (styles) {
styles = resolveThemableArray(splitStyles(styles));
}
return styles;
}
exports.detokenize = detokenize;
/**
* Resolves ThemingInstruction objects in an array and joins the result into a string.
* @param {ThemableArray} splitStyleArray ThemableArray to resolve and join.
*/
function resolveThemableArray(splitStyleArray) {
var theme = _themeState.theme;
var resolvedCss;
if (splitStyleArray) {
// Resolve the array of theming instructions to an array of strings.
// Then join the array to produce the final CSS string.
var resolvedArray = splitStyleArray.map(function (currentValue) {
var themeSlot = currentValue.theme;
if (themeSlot) {
// A theming annotation. Resolve it.
var themedValue = theme ? theme[themeSlot] : undefined;
var defaultValue = currentValue.defaultValue;
// Warn to console if we hit an unthemed value even when themes are provided.
// Allow the themedValue to be undefined to explicitly request the default value.
if (theme && !themedValue && console && !(themeSlot in theme)) {
/* tslint:disable: max-line-length */
console.warn("Theming value not provided for \"" + themeSlot + "\". Falling back to \"" + (defaultValue || 'inherit') + "\".");
}
return themedValue || defaultValue || 'inherit';
}
else {
// A non-themable string. Preserve it.
return currentValue.rawString;
}
});
resolvedCss = resolvedArray.join('');
}
return resolvedCss;
}
/**
* Split tokenized CSS into an array of strings and theme specification objects
* @param {string} styles Tokenized styles to split.
*/
function splitStyles(styles) {
var result = [];
if (styles) {
var pos = 0; // Current position in styles.
var tokenMatch = void 0;
while (tokenMatch = _themeTokenRegex.exec(styles)) {
var matchIndex = tokenMatch.index;
if (matchIndex > pos) {
result.push({
rawString: styles.substring(pos, matchIndex)
});
}
result.push({
theme: tokenMatch[1],
defaultValue: tokenMatch[2] // May be undefined
});
// index of the first character after the current match
pos = _themeTokenRegex.lastIndex;
}
// Push the rest of the string after the last match.
result.push({
rawString: styles.substring(pos)
});
}
return result;
}
exports.splitStyles = splitStyles;
/**
* Registers a set of style text. If it is registered too early, we will register it when the
* window.load event is fired.
* @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.
* @param {IStyleRecord} styleRecord May specify a style Element to update.
*/
function registerStyles(styleArray, styleRecord) {
var head = document.getElementsByTagName('head')[0];
var styleElement = document.createElement('style');
styleElement.type = 'text/css';
styleElement.appendChild(document.createTextNode(resolveThemableArray(styleArray)));
if (styleRecord) {
head.replaceChild(styleElement, styleRecord.styleElement);
styleRecord.styleElement = styleElement;
}
else {
head.appendChild(styleElement);
}
if (!styleRecord) {
_themeState.registeredStyles.push({
styleElement: styleElement,
themableStyle: styleArray
});
}
}
/**
* Registers a set of style text, for IE 9 and below, which has a ~30 style element limit so we need
* to register slightly differently.
* @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.
* @param {IStyleRecord} styleRecord May specify a style Element to update.
*/
function registerStylesIE(styleArray, styleRecord) {
var head = document.getElementsByTagName('head')[0];
var lastStyleElement = _themeState.lastStyleElement, registeredStyles = _themeState.registeredStyles;
var stylesheet = lastStyleElement ? lastStyleElement.styleSheet : undefined;
var lastStyleContent = stylesheet ? stylesheet.cssText : '';
var lastRegisteredStyle = registeredStyles[registeredStyles.length - 1];
var resolvedStyleText = resolveThemableArray(styleArray);
if (!lastStyleElement || (lastStyleContent.length + resolvedStyleText.length) > MAX_STYLE_CONTENT_SIZE) {
lastStyleElement = document.createElement('style');
lastStyleElement.type = 'text/css';
if (styleRecord) {
head.replaceChild(lastStyleElement, styleRecord.styleElement);
styleRecord.styleElement = lastStyleElement;
}
else {
head.appendChild(lastStyleElement);
}
if (!styleRecord) {
lastRegisteredStyle = {
styleElement: lastStyleElement,
themableStyle: styleArray
};
registeredStyles.push(lastRegisteredStyle);
}
}
lastStyleElement.styleSheet.cssText += detokenize(resolvedStyleText);
Array.prototype.push.apply(lastRegisteredStyle.themableStyle, styleArray); // concat in-place
// Preserve the theme state.
_themeState.lastStyleElement = lastStyleElement;
}
/**
* Checks to see if styleSheet exists as a property off of a style element.
* This will determine if style registration should be done via cssText (<= IE9) or not
*/
function shouldUseCssText() {
var useCSSText = false;
if (typeof document !== 'undefined') {
var emptyStyle = document.createElement('style');
emptyStyle.type = 'text/css';
useCSSText = !!emptyStyle.styleSheet;
}
return useCSSText;
}
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ },
/* 21 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var sp_http_1 = __webpack_require__(22);
var sp_core_library_1 = __webpack_require__(1);
var MockHttpClient_1 = __webpack_require__(23);
/**
* @class
* Service implementation to get list & list items from current SharePoint site
*/
var SPPicturesListService = (function () {
/**
* @function
* Service constructor
*/
function SPPicturesListService(_props, pageContext) {
this.props = _props;
this.context = pageContext;
}
/**
* @function
* Gets the list of picture libs in the current SharePoint site
*/
SPPicturesListService.prototype.getPictureLibs = function () {
if (sp_core_library_1.Environment.type === sp_core_library_1.EnvironmentType.Local) {
//If the running environment is local, load the data from the mock
return this.getPictureLibsFromMock();
}
else {
//If the running environment is SharePoint, request the lists REST service
//Gets only the list with BaseTemplate = 109 (picture libs)
return this.context.spHttpClient.get(this.context.pageContext.web.absoluteUrl + "/_api/lists?$select=Title,id,BaseTemplate&$filter=BaseTemplate%20eq%20109", sp_http_1.SPHttpClient.configurations.v1)
.then(function (response) {
return response.json();
});
}
};
/**
* @function
* Returns 3 fake SharePoint lists for the Mock mode
*/
SPPicturesListService.prototype.getPictureLibsFromMock = function () {
return MockHttpClient_1.default.getLists(this.context.pageContext.web.absoluteUrl).then(function () {
var listData = {
value: [
{ Title: 'Mock List One', Id: '1', BaseTemplate: '109' },
{ Title: 'Mock List Two', Id: '2', BaseTemplate: '109' },
{ Title: 'Mock List Three', Id: '3', BaseTemplate: '109' }
]
};
return listData;
});
};
/**
* @function
* Gets the pictures from a SharePoint list
*/
SPPicturesListService.prototype.getPictures = function (libId) {
var _this = this;
if (sp_core_library_1.Environment.type === sp_core_library_1.EnvironmentType.Local) {
//If the running environment is local, load the data from the mock
return this.getPicturesFromMock(libId);
}
else {
//If the running environment is SharePoint, request the items REST service
//Builds the request to get only some fields, order the items & limit the number of items
//TODO: optimize the request to not include folders and get only items
var restUrl = this.context.pageContext.web.absoluteUrl;
restUrl += "/_api/Web/Lists(guid'";
restUrl += this.props.listName;
restUrl += "')/items?$expand=File&$select=Title,Description,id,File,FileSystemObjectType&$orderby=";
restUrl += this.props.orderBy;
restUrl += "%20";
restUrl += this.props.orderByAsc;
restUrl += "&$top=";
restUrl += this.props.count;
//Request the SharePoint web service
return this.context.spHttpClient.get(restUrl, sp_http_1.SPHttpClient.configurations.v1).then(function (response) {
return response.json().then(function (responseFormated) {
var formatedResponse = { value: [] };
//Fetchs the Json response to construct the final items list
responseFormated.value.map(function (object, i) {
//Tests if the result is a file and not a folder
if (object['FileSystemObjectType'] == '0') {
var spListItem = {
'ID': object["ID"],
'Title': object['Title'],
'Description': object['Description'],
'File': {
'Name': object['File']['Name'],
'ServerRelativeUrl': object['File']['ServerRelativeUrl']
}
};
//Creates the thumbnail item url from the Picture path
spListItem.File.ThumbnailServerUrl = _this.getThumbnailUrl(spListItem.File.ServerRelativeUrl, spListItem.File.Name);
formatedResponse.value.push(spListItem);
}
});
return formatedResponse;
});
});
}
};
/**
* @function
* Gets the thumbnail picture url from the Picture name.
* In SharePoint pictures libs, the thumbnail url is formated as for example '/_t/10_jpg.jpg'
*/
SPPicturesListService.prototype.getThumbnailUrl = function (pictureUrl, pictureName) {
if (pictureUrl == null || pictureUrl == '')
return '';
var thumbUrl = '';
thumbUrl = pictureUrl.replace(pictureName, '');
thumbUrl += "_t/";
thumbUrl += pictureName.replace(".", "_");
thumbUrl += ".jpg";
return thumbUrl;
};
/**
* @function
* Gets the pictures list from the mock. This function will return a
* different list of pics for the lib 1 & 2, and an empty list for the third.
*/
SPPicturesListService.prototype.getPicturesFromMock = function (libId) {
return MockHttpClient_1.default.getListsItems(this.context.pageContext.web.absoluteUrl).then(function () {
var listData = { value: [] };
if (libId == '1') {
listData = {
value: [
{
"ID": "1", "Title": "Barton Dam, Ann Arbor, Michigan", "Description": "",
"File": {
"Name": "01.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/01.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/01.jpg"
}
},
{
"ID": "2", "Title": "Building Atlanta, Georgia", "Description": "",
"File": {
"Name": "02.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/02.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/02.jpg"
}
},
{
"ID": "3", "Title": "Nice day for a swim", "Description": "",
"File": {
"Name": "03.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/03.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/03.jpg"
}
},
{
"ID": "4", "Title": "The plants that never die", "Description": "",
"File": {
"Name": "04.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/04.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/04.jpg"
}
},
{
"ID": "5", "Title": "Downtown Atlanta, Georgia", "Description": "",
"File": {
"Name": "05.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/05.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/05.jpg"
}
},
{
"ID": "6", "Title": "Atlanta traffic", "Description": "",
"File": {
"Name": "06.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/06.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/06.jpg"
}
},
{
"ID": "7", "Title": "A pathetic dog", "Description": "",
"File": {
"Name": "07.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/07.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/07.jpg"
}
},
{
"ID": "8", "Title": "Two happy dogs", "Description": "",
"File": {
"Name": "08.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/08.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/08.jpg"
}
},
{
"ID": "9", "Title": "Antigua, Guatemala", "Description": "",
"File": {
"Name": "09.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/09.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/09.jpg"
}
},
{
"ID": "10", "Title": "Iximche, Guatemala", "Description": "",
"File": {
"Name": "10.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/10.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/10.jpg"
}
}
]
};
}
else if (libId == '2') {
listData = {
value: [
{
"ID": "11", "Title": "Barton Dam, Ann Arbor, Michigan", "Description": "",
"File": {
"Name": "11.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/11.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/11.jpg"
}
},
{
"ID": "12", "Title": "Building Atlanta, Georgia", "Description": "",
"File": {
"Name": "12.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/12.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/12.jpg"
}
},
{
"ID": "13", "Title": "Nice day for a swim", "Description": "",
"File": {
"Name": "13.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/13.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/13.jpg"
}
},
{
"ID": "14", "Title": "The plants that never die", "Description": "",
"File": {
"Name": "14.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/14.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/14.jpg"
}
},
{
"ID": "15", "Title": "Downtown Atlanta, Georgia", "Description": "",
"File": {
"Name": "15.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/15.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/15.jpg"
}
},
{
"ID": "16", "Title": "Atlanta traffic", "Description": "",
"File": {
"Name": "16.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/16.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/16.jpg"
}
},
{
"ID": "17", "Title": "A pathetic dog", "Description": "",
"File": {
"Name": "17.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/17.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/17.jpg"
}
},
{
"ID": "18", "Title": "Two happy dogs", "Description": "",
"File": {
"Name": "18.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/18.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/18.jpg"
}
},
{
"ID": "19", "Title": "Antigua, Guatemala", "Description": "",
"File": {
"Name": "19.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/19.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/19.jpg"
}
},
{
"ID": "20", "Title": "Iximche, Guatemala", "Description": "",
"File": {
"Name": "20.jpg",
"ServerRelativeUrl": "../src/webparts/photopileWebPart/images/fullsize/20.jpg",
"ThumbnailServerUrl": "../src/webparts/photopileWebPart/images/thumbs/20.jpg"
}
}
]
};
}
return listData;
});
};
return SPPicturesListService;
}());
exports.SPPicturesListService = SPPicturesListService;
/***/ },
/* 22 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_22__;
/***/ },
/* 23 */
/***/ function(module, exports) {
"use strict";
/**
* @class
* Defines a http client to request mock data to use the web part with the local workbench
*/
var MockHttpClient = (function () {
function MockHttpClient() {
}
/**
* @function
* Mock get SharePoint list request
*/
MockHttpClient.getLists = function (restUrl, options) {
return new Promise(function (resolve) {
resolve(MockHttpClient._lists);
});
};
/**
* @function
* Mock get SharePoint list items request
*/
MockHttpClient.getListsItems = function (restUrl, options) {
return new Promise(function (resolve) {
resolve(MockHttpClient._items);
});
};
return MockHttpClient;
}());
/**
* @var
* Mock SharePoint list sample
*/
MockHttpClient._lists = [{ Title: 'Mock List', Id: '1', BaseTemplate: '109' }];
/**
* @var
* Mock SharePoint list item sample
*/
MockHttpClient._items = [
{ "ID": "1", "Title": "Pic 1", "Description": "", "File": { "Name": "1.jpg", "ServerRelativeUrl": "/Images/1.jpg" } }
];
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = MockHttpClient;
/***/ },
/* 24 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_24__;
/***/ },
/* 25 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_25__;
/***/ },
/* 26 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_26__;
/***/ },
/* 27 */
/***/ function(module, exports, __webpack_require__) {
/* tslint:disable */
__webpack_require__(28);
/* tslint:enable */
/***/ },
/* 28 */
/***/ function(module, exports, __webpack_require__) {
var content = __webpack_require__(29);
var loader = __webpack_require__(20);
if(typeof content === "string") content = [[module.id, content]];
// add the styles to the DOM
for (var i = 0; i < content.length; i++) loader.loadStyles(content[i][1]);
if(content.locals) module.exports = content.locals;
/***/ },
/* 29 */
/***/ function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(19)();
// imports
// module
exports.push([module.id, "@media (max-width:320px){ul.photopile li a{max-width:85px}}@media (min-width:321px) and (max-width:568px){ul.photopile li a{max-width:100px}}@media (min-width:569px) and (max-width:768px){ul.photopile li a{max-width:115px}}@media (min-width:769px) and (max-width:1024px){ul.photopile li a{max-width:125px}}@media (min-width:1025px){ul.photopile li a{max-width:150px}}div#photopile-nav-next,div#photopile-nav-next:hover,div#photopile-nav-prev,div#photopile-nav-prev:hover{background-image:url(//photopilewebpart.blob.core.windows.net/photopile-web-part/nav-sprites.png)}ul.photopile{display:none}ul.photopile{position:relative;display:inline-block;width:100%;margin:0;padding:0;list-style:none}ul.photopile li{display:inline-block;position:relative;margin:2px;padding:0;-webkit-backface-visibility:hidden}ul.photopile li a{display:block;padding:2px;outline:0;text-decoration:none;border:1px solid #6F6F6F;box-shadow:0 0 20px #3D3D3D}ul.photopile li.photopile-active-thumbnail a:hover,ul.photopile li.photopile-active-thumbnail:hover{cursor:default}ul.photopile li a img{display:block;margin:0;padding:0;border:1px solid #6F6F6F;width:100%;height:auto;box-sizing:border-box}div#photopile-active-image-container{border:1px solid #6F6F6F;box-shadow:0 20px 80px #000;box-sizing:border-box}div#photopile-active-image-container img{margin:0 auto;height:auto}div#photopile-active-image-info{position:relative;width:100%;background:rgba(0,0,0,.3)}div#photopile-active-image-info p{color:#fff;font-size:12px;margin:0;padding:3px 8px}div#photopile-nav-next,div#photopile-nav-prev{opacity:0;position:absolute;top:50%;width:30px;height:40px;margin-top:-20px;cursor:pointer}div#photopile-nav-next{right:0;margin-right:-35px;background-position:-50px 0}div#photopile-nav-next:hover{background-position:-50px -50px}div#photopile-nav-prev{left:0;right:0;margin-left:-35px;background-position:0 0}div#photopile-nav-prev:hover{background-position:0 -50px}", ""]);
// exports
/***/ }
/******/ ])});;
//# sourceMappingURL=photopile-web-part.bundle.js.map