superdesk-ui-framework 3.1.14 → 3.1.16

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.
Files changed (37) hide show
  1. package/app/img/AvatarDefaultImage.svg +6 -0
  2. package/app/styles/_avatar.scss +28 -6
  3. package/app/styles/components/_sd-loader.scss +18 -5
  4. package/app/styles/design-tokens/_new-colors.scss +32 -17
  5. package/app-typescript/components/Button.tsx +1 -1
  6. package/app-typescript/components/DatePicker.tsx +6 -0
  7. package/app-typescript/components/Loader.tsx +23 -5
  8. package/app-typescript/components/avatar/avatar-group.tsx +2 -1
  9. package/app-typescript/components/avatar/avatar-image.tsx +1 -1
  10. package/app-typescript/components/avatar/avatar-placeholder.tsx +0 -1
  11. package/app-typescript/components/avatar/avatar-wrapper.tsx +14 -2
  12. package/app-typescript/components/avatar/avatar.tsx +8 -1
  13. package/dist/components/Avatar.tsx +97 -40
  14. package/dist/components/Buttons.tsx +5 -3
  15. package/dist/components/Index.tsx +157 -128
  16. package/dist/components/Loader.tsx +24 -0
  17. package/dist/examples.bundle.js +351 -243
  18. package/dist/playgrounds/react-playgrounds/TestGround.tsx +30 -10
  19. package/dist/superdesk-ui.bundle.css +68 -26
  20. package/dist/superdesk-ui.bundle.js +95 -84
  21. package/examples/pages/components/Avatar.tsx +97 -40
  22. package/examples/pages/components/Buttons.tsx +5 -3
  23. package/examples/pages/components/Index.tsx +157 -128
  24. package/examples/pages/components/Loader.tsx +24 -0
  25. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +30 -10
  26. package/package.json +1 -1
  27. package/react/components/Button.js +1 -1
  28. package/react/components/DatePicker.js +4 -0
  29. package/react/components/Loader.d.ts +11 -3
  30. package/react/components/Loader.js +6 -2
  31. package/react/components/avatar/avatar-group.js +2 -2
  32. package/react/components/avatar/avatar-image.js +1 -1
  33. package/react/components/avatar/avatar-placeholder.js +1 -1
  34. package/react/components/avatar/avatar-wrapper.d.ts +4 -1
  35. package/react/components/avatar/avatar-wrapper.js +4 -2
  36. package/react/components/avatar/avatar.d.ts +4 -0
  37. package/react/components/avatar/avatar.js +2 -2
@@ -70,7 +70,7 @@ return /******/ (function(modules) { // webpackBootstrap
70
70
  /******/ __webpack_require__.p = "";
71
71
  /******/
72
72
  /******/ // Load entry module and return exports
73
- /******/ return __webpack_require__(__webpack_require__.s = 974);
73
+ /******/ return __webpack_require__(__webpack_require__.s = 975);
74
74
  /******/ })
75
75
  /************************************************************************/
76
76
  /******/ ([
@@ -38055,7 +38055,7 @@ var Button = /** @class */ (function (_super) {
38055
38055
  _a));
38056
38056
  return (React.createElement("button", { id: this.props.id, className: classes, tabIndex: 0, disabled: this.props.disabled || this.props.isLoading, "data-loading": this.props.isLoading, onClick: this.props.disabled ? function () { return false; } : function (event) { return _this.props.onClick(event); }, "aria-label": this.props.iconOnly ? this.props.text : '', "data-test-id": this.props['data-test-id'], title: this.props.tooltip },
38057
38057
  this.props.isLoading ? React.createElement(Spinner_1.Spinner, { size: "mini" }) : null,
38058
- this.props.icon && !this.props.isLoading ? React.createElement(Icon_1.Icon, { name: this.props.icon }) : null,
38058
+ this.props.icon && !this.props.isLoading ? React.createElement(Icon_1.Icon, { ariaHidden: true, name: this.props.icon }) : null,
38059
38059
  this.props.iconOnly ? null : this.props.text));
38060
38060
  };
38061
38061
  return Button;
@@ -38203,6 +38203,7 @@ var AvatarWrapper = /** @class */ (function (_super) {
38203
38203
  AvatarWrapper.prototype.render = function () {
38204
38204
  var _a, _b, _c;
38205
38205
  var icon = this.props.icon;
38206
+ var statusDot = this.props.statusDot;
38206
38207
  return (React.createElement("span", { className: (0, classnames_1.default)('sd-avatar', {
38207
38208
  'sd-avatar--x-small': this.props.size === 'x-small',
38208
38209
  'sd-avatar--small': this.props.size === 'small',
@@ -38212,14 +38213,15 @@ var AvatarWrapper = /** @class */ (function (_super) {
38212
38213
  'sd-avatar--xx-large': this.props.size === 'xx-large',
38213
38214
  'sd-avatar--indicator-status--online': ((_a = this.props.statusIndicator) === null || _a === void 0 ? void 0 : _a.status) === 'online',
38214
38215
  'sd-avatar--indicator-status--offline': ((_b = this.props.statusIndicator) === null || _b === void 0 ? void 0 : _b.status) === 'offline',
38215
- 'sd-avatar--empty-light': this.props.isEmpty,
38216
+ 'sd-avatar--empty-light': this.props.noAvatarPlaceholderColor === 'subtle',
38216
38217
  }), "data-test-id": this.props['data-test-id'], title: this.props.statusIndicator != null ? this.props.statusIndicator.tooltipText : "" },
38217
38218
  this.props.children,
38218
38219
  ((_c = this.props.administratorIndicator) === null || _c === void 0 ? void 0 : _c.enabled) === true
38219
38220
  ? (React.createElement("i", { className: "icon-settings sd-avatar--indicator-admin", title: this.props.administratorIndicator.tooltipText }))
38220
38221
  : null,
38221
38222
  icon != null && (React.createElement("span", { className: "sd-avatar__icon" },
38222
- React.createElement(Icon_1.Icon, { name: icon.name, color: icon.color })))));
38223
+ React.createElement(Icon_1.Icon, { name: icon.name, color: icon.color }))),
38224
+ statusDot != null && (React.createElement("span", { style: { backgroundColor: statusDot.color }, className: "sd-avatar__coverage-state" }))));
38223
38225
  };
38224
38226
  return AvatarWrapper;
38225
38227
  }(React.PureComponent));
@@ -39881,7 +39883,7 @@ var AvatarContentImage = /** @class */ (function (_super) {
39881
39883
  if (imageUrl == null) {
39882
39884
  return (React.createElement("span", __assign({}, maybeButtonProps, { className: "sd-avatar-content sd-avatar-content--dummy-img", title: tooltipText }),
39883
39885
  React.createElement("svg", { width: "200", height: "200", viewBox: "0 0 200 200", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
39884
- React.createElement("circle", { cx: "100", cy: "100", r: "100", fill: "white", fillOpacity: "0.01" }),
39886
+ React.createElement("circle", { cx: "100", cy: "100", r: "100", fill: "white", fillOpacity: "0" }),
39885
39887
  React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M40 153V145.384C40 141.557 41.16 137.981 43.16 135C49.14 126.057 66.24 119.711 77.14 118C82.74 117.115 90.16 116.538 100 116.538C109.84 116.538 117.26 117.115 122.86 118C133.76 119.711 150.86 126.057 156.84 135C158.84 137.981 160 141.557 160 145.384V153C150 165 130 180 100 180C70 180 50 165 40 153ZM100 30C122.08 30 140 47.2307 140 68.4614C140 89.6922 122.08 106.923 100 106.923C77.92 106.923 60 89.6922 60 68.4614C60 47.2307 77.92 30 100 30Z", fill: "var(--sd-colour-avatar-dummy)", fillOpacity: "1" }))));
39886
39888
  }
39887
39889
  else {
@@ -41833,6 +41835,10 @@ var DatePicker = /** @class */ (function (_super) {
41833
41835
  React.createElement(calendar_1.Calendar, { footerTemplate: this.props.required !== true ? function () { return (React.createElement("div", { className: 'd-flex justify-end' },
41834
41836
  React.createElement(Button_1.Button, { onClick: function () {
41835
41837
  _this.props.onChange(null);
41838
+ if (_this.instance != null
41839
+ && typeof _this.instance.hideOverlay === 'function') {
41840
+ _this.instance.hideOverlay();
41841
+ }
41836
41842
  }, text: 'Clear', "data-test-id": 'clear-button' }))); } : undefined, inputId: this.htmlId, ariaLabelledBy: this.htmlId + 'label', ref: function (ref) {
41837
41843
  _this.instance = ref;
41838
41844
  var refAny = ref;
@@ -42128,10 +42134,14 @@ var Loader = /** @class */ (function (_super) {
42128
42134
  }
42129
42135
  Loader.prototype.render = function () {
42130
42136
  if (this.props.overlay) {
42131
- return (React.createElement("div", { className: 'sd-loader' }));
42137
+ return (React.createElement("div", { className: "sd-loader", style: { backgroundColor: this.props.backgroundColor } }));
42132
42138
  }
42133
42139
  else {
42134
- return null;
42140
+ return (React.createElement("div", { className: "sd-loader--inline", style: {
42141
+ width: this.props.width,
42142
+ height: this.props.height,
42143
+ backgroundColor: this.props.backgroundColor,
42144
+ } }));
42135
42145
  }
42136
42146
  };
42137
42147
  return Loader;
@@ -44287,10 +44297,10 @@ var Avatar = /** @class */ (function (_super) {
44287
44297
  return _super !== null && _super.apply(this, arguments) || this;
44288
44298
  }
44289
44299
  Avatar.prototype.render = function () {
44290
- var _a = this.props, imageUrl = _a.imageUrl, initials = _a.initials, size = _a.size, statusIndicator = _a.statusIndicator, administratorIndicator = _a.administratorIndicator, icon = _a.icon, displayName = _a.displayName, customContent = _a.customContent;
44300
+ var _a = this.props, imageUrl = _a.imageUrl, initials = _a.initials, size = _a.size, statusIndicator = _a.statusIndicator, administratorIndicator = _a.administratorIndicator, icon = _a.icon, noAvatarPlaceholderColor = _a.noAvatarPlaceholderColor, displayName = _a.displayName, customContent = _a.customContent, statusDot = _a.statusDot;
44291
44301
  var tooltipCombined = [displayName, this.props.tooltip]
44292
44302
  .filter(function (str) { return (str !== null && str !== void 0 ? str : '').trim().length > 0; }).join('\n');
44293
- return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, statusIndicator: statusIndicator ? { status: statusIndicator, tooltipText: '' } : undefined, administratorIndicator: administratorIndicator ? { enabled: true, tooltipText: '' } : undefined, icon: icon, isEmpty: false }, (function () {
44303
+ return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, statusIndicator: statusIndicator ? { status: statusIndicator, tooltipText: '' } : undefined, administratorIndicator: administratorIndicator ? { enabled: true, tooltipText: '' } : undefined, icon: icon, statusDot: statusDot, noAvatarPlaceholderColor: noAvatarPlaceholderColor }, (function () {
44294
44304
  if (customContent != null) {
44295
44305
  return customContent;
44296
44306
  }
@@ -44364,7 +44374,7 @@ var AvatarPlaceholder = /** @class */ (function (_super) {
44364
44374
  }
44365
44375
  AvatarPlaceholder.prototype.render = function () {
44366
44376
  var _a = this.props, size = _a.size, tooltip = _a.tooltip, icon = _a.icon, kind = _a.kind, onClick = _a.onClick;
44367
- return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, isEmpty: false, icon: icon }, (function () {
44377
+ return (React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, icon: icon }, (function () {
44368
44378
  if (kind === 'plus-button') {
44369
44379
  return (React.createElement(avatar_action_add_1.AvatarContentAdd, { tooltipText: tooltip !== null && tooltip !== void 0 ? tooltip : undefined, onClick: onClick }));
44370
44380
  }
@@ -83920,7 +83930,7 @@ var AvatarGroup = /** @class */ (function (_super) {
83920
83930
  isAvatar(item)
83921
83931
  && item.displayName,
83922
83932
  isAvatar(item)
83923
- ? (React.createElement(avatar_1.Avatar, { size: 'small', imageUrl: item.imageUrl, initials: item.initials, displayName: item.displayName, icon: item.icon }))
83933
+ ? (React.createElement(avatar_1.Avatar, { size: 'small', imageUrl: item.imageUrl, initials: item.initials, displayName: item.displayName, icon: item.icon, statusDot: item.statusDot }))
83924
83934
  : (React.createElement(avatar_placeholder_1.AvatarPlaceholder, { kind: 'plus-button', size: 'small', icon: item.icon, onClick: item.onClick })))
83925
83935
  : React.createElement("div", null,
83926
83936
  React.createElement(avatar_placeholder_1.AvatarPlaceholder, { kind: 'plus-button', size: 'small', icon: item.icon, onClick: isAvatar(item) ? undefined : item.onClick, key: index })));
@@ -83934,7 +83944,7 @@ var AvatarGroup = /** @class */ (function (_super) {
83934
83944
  }
83935
83945
  }),
83936
83946
  itemsOverLimit > 0 && (React.createElement(PlusButtonWrapper, { onToggle: onToggle },
83937
- React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size, isEmpty: false },
83947
+ React.createElement(avatar_wrapper_1.AvatarWrapper, { size: size },
83938
83948
  React.createElement(avatar_number_1.AvatarContentNumber, { number: "".concat(itemsOverLimit) })))))); }));
83939
83949
  };
83940
83950
  return AvatarGroup;
@@ -157916,7 +157926,8 @@ angular.module('superdesk-ui.positioner', []).component('sdPositioner', (0, _rea
157916
157926
  /* 971 */,
157917
157927
  /* 972 */,
157918
157928
  /* 973 */,
157919
- /* 974 */
157929
+ /* 974 */,
157930
+ /* 975 */
157920
157931
  /***/ (function(module, exports, __webpack_require__) {
157921
157932
 
157922
157933
  "use strict";
@@ -158203,53 +158214,53 @@ Object.defineProperty(exports, 'ContentDivider', {
158203
158214
  }
158204
158215
  });
158205
158216
 
158206
- __webpack_require__(975);
158217
+ __webpack_require__(976);
158207
158218
 
158208
- __webpack_require__(1010);
158219
+ __webpack_require__(1011);
158209
158220
 
158210
158221
  exports.default = angular.module('superdesk-ui', ['superdesk-ui.helper', 'superdesk-ui.carousel', 'superdesk-ui.wizard', 'superdesk-ui.dropdown', 'superdesk-ui.positioner', 'superdesk-ui.modals', 'superdesk-ui.switch', 'superdesk-ui.check', 'superdesk-ui.circularProgress', 'superdesk-ui.toggleBox', 'superdesk-ui.toggleBoxNext', 'superdesk-ui.tags', 'superdesk-ui.lineInput', 'superdesk-ui.searchHandler', 'superdesk-ui.splitter', 'superdesk-ui.mediaQuery']);
158211
158222
 
158212
158223
  /***/ }),
158213
- /* 975 */
158224
+ /* 976 */
158214
158225
  /***/ (function(module, exports, __webpack_require__) {
158215
158226
 
158216
158227
  "use strict";
158217
158228
 
158218
158229
 
158219
- __webpack_require__(976);
158220
-
158221
- __webpack_require__(990);
158230
+ __webpack_require__(977);
158222
158231
 
158223
- __webpack_require__(992);
158232
+ __webpack_require__(991);
158224
158233
 
158225
158234
  __webpack_require__(993);
158226
158235
 
158227
- __webpack_require__(800);
158228
-
158229
158236
  __webpack_require__(994);
158230
158237
 
158238
+ __webpack_require__(800);
158239
+
158231
158240
  __webpack_require__(995);
158232
158241
 
158233
158242
  __webpack_require__(996);
158234
158243
 
158235
- __webpack_require__(799);
158236
-
158237
158244
  __webpack_require__(997);
158238
158245
 
158239
- __webpack_require__(1000);
158246
+ __webpack_require__(799);
158247
+
158248
+ __webpack_require__(998);
158240
158249
 
158241
- __webpack_require__(1002);
158250
+ __webpack_require__(1001);
158242
158251
 
158243
- __webpack_require__(1004);
158252
+ __webpack_require__(1003);
158244
158253
 
158245
- __webpack_require__(1006);
158254
+ __webpack_require__(1005);
158246
158255
 
158247
- __webpack_require__(1008);
158256
+ __webpack_require__(1007);
158248
158257
 
158249
158258
  __webpack_require__(1009);
158250
158259
 
158260
+ __webpack_require__(1010);
158261
+
158251
158262
  /***/ }),
158252
- /* 976 */
158263
+ /* 977 */
158253
158264
  /***/ (function(module, exports, __webpack_require__) {
158254
158265
 
158255
158266
  "use strict";
@@ -158259,22 +158270,22 @@ Object.defineProperty(exports, "__esModule", {
158259
158270
  value: true
158260
158271
  });
158261
158272
 
158262
- __webpack_require__(977);
158263
-
158264
158273
  __webpack_require__(978);
158265
158274
 
158266
- __webpack_require__(984);
158275
+ __webpack_require__(979);
158267
158276
 
158268
158277
  __webpack_require__(985);
158269
158278
 
158270
- __webpack_require__(988);
158279
+ __webpack_require__(986);
158271
158280
 
158272
158281
  __webpack_require__(989);
158273
158282
 
158283
+ __webpack_require__(990);
158284
+
158274
158285
  exports.default = angular.module('superdesk-ui.helper', ['superdesk-ui.helper.dropdown', 'superdesk-ui.helper.modal', 'superdesk-ui.helper.datepicker', 'superdesk-ui.helper.ngTagsInput']);
158275
158286
 
158276
158287
  /***/ }),
158277
- /* 977 */
158288
+ /* 978 */
158278
158289
  /***/ (function(module, exports, __webpack_require__) {
158279
158290
 
158280
158291
  "use strict";
@@ -158491,7 +158502,7 @@ angular.module('superdesk-ui.helper.dateparser', []).service('dateParser', ['$lo
158491
158502
  }]);
158492
158503
 
158493
158504
  /***/ }),
158494
- /* 978 */
158505
+ /* 979 */
158495
158506
  /***/ (function(module, exports, __webpack_require__) {
158496
158507
 
158497
158508
  "use strict";
@@ -158710,7 +158721,7 @@ angular.module('superdesk-ui.helper.datepicker', ['superdesk-ui.helper.dateparse
158710
158721
  return {
158711
158722
  restrict: 'EA',
158712
158723
  replace: true,
158713
- template: __webpack_require__(979),
158724
+ template: __webpack_require__(980),
158714
158725
  scope: {
158715
158726
  datepickerMode: '=?',
158716
158727
  dateDisabled: '&',
@@ -158732,7 +158743,7 @@ angular.module('superdesk-ui.helper.datepicker', ['superdesk-ui.helper.dateparse
158732
158743
  return {
158733
158744
  restrict: 'EA',
158734
158745
  replace: true,
158735
- template: __webpack_require__(980),
158746
+ template: __webpack_require__(981),
158736
158747
  require: '^datepicker',
158737
158748
  link: function link(scope, element, attrs, ctrl) {
158738
158749
  scope.showWeeks = ctrl.showWeeks;
@@ -158851,7 +158862,7 @@ angular.module('superdesk-ui.helper.datepicker', ['superdesk-ui.helper.dateparse
158851
158862
  return {
158852
158863
  restrict: 'EA',
158853
158864
  replace: true,
158854
- template: __webpack_require__(981),
158865
+ template: __webpack_require__(982),
158855
158866
  require: '^datepicker',
158856
158867
  link: function link(scope, element, attrs, ctrl) {
158857
158868
  ctrl.step = { years: 1 };
@@ -158908,7 +158919,7 @@ angular.module('superdesk-ui.helper.datepicker', ['superdesk-ui.helper.dateparse
158908
158919
  return {
158909
158920
  restrict: 'EA',
158910
158921
  replace: true,
158911
- template: __webpack_require__(982),
158922
+ template: __webpack_require__(983),
158912
158923
  require: '^datepicker',
158913
158924
  link: function link(scope, element, attrs, ctrl) {
158914
158925
  var range = ctrl.yearRange;
@@ -159275,42 +159286,42 @@ angular.module('superdesk-ui.helper.datepicker', ['superdesk-ui.helper.dateparse
159275
159286
  restrict: 'EA',
159276
159287
  replace: true,
159277
159288
  transclude: true,
159278
- template: __webpack_require__(983)
159289
+ template: __webpack_require__(984)
159279
159290
  };
159280
159291
  });
159281
159292
 
159282
159293
  /***/ }),
159283
- /* 979 */
159294
+ /* 980 */
159284
159295
  /***/ (function(module, exports) {
159285
159296
 
159286
159297
  module.exports = "<div ng-switch=\"datepickerMode\" role=\"application\" ng-keydown=\"keydown($event)\">\n <daypicker ng-switch-when=\"day\" tabindex=\"0\"></daypicker>\n <monthpicker ng-switch-when=\"month\" tabindex=\"0\"></monthpicker>\n <yearpicker ng-switch-when=\"year\" tabindex=\"0\"></yearpicker>\n</div>";
159287
159298
 
159288
159299
  /***/ }),
159289
- /* 980 */
159300
+ /* 981 */
159290
159301
  /***/ (function(module, exports) {
159291
159302
 
159292
159303
  module.exports = "<table role=\"grid\" aria-labelledby=\"{{::uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n <thead>\n <tr>\n <th><button type=\"button\" class=\"btn btn-default btn-sm pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\"><i class=\"icon-chevron-left-thin\"></i></button></th>\n <th colspan=\"{{::5 + showWeeks}}\"><button id=\"{{::uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n <th><button type=\"button\" class=\"btn btn-default btn-sm pull-right\" ng-click=\"move(1)\" tabindex=\"-1\"><i class=\"icon-chevron-right-thin\"></i></button></th>\n </tr>\n <tr>\n <th ng-if=\"showWeeks\" class=\"text-center\"></th>\n <th ng-repeat=\"label in ::labels track by $index\" class=\"text-center\"><small aria-label=\"{{::label.full}}\">{{::label.abbr}}</small></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat=\"row in rows track by $index\">\n <td ng-if=\"showWeeks\" class=\"text-center h6\"><em>{{ weekNumbers[$index] }}</em></td>\n <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{::dt.uid}}\" ng-class=\"::dt.customClass\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default btn-sm\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"::{'text-muted': dt.secondary, 'text-info': dt.current}\">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n";
159293
159304
 
159294
159305
  /***/ }),
159295
- /* 981 */
159306
+ /* 982 */
159296
159307
  /***/ (function(module, exports) {
159297
159308
 
159298
159309
  module.exports = "<table role=\"grid\" aria-labelledby=\"{{::uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n <thead>\n <tr>\n <th><button type=\"button\" class=\"btn btn-default btn-sm pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\"><i class=\"icon-chevron-left-thin\"></i></button></th>\n <th><button id=\"{{::uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n <th><button type=\"button\" class=\"btn btn-default btn-sm pull-right\" ng-click=\"move(1)\" tabindex=\"-1\"><i class=\"icon-chevron-right-thin\"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat=\"row in rows track by $index\">\n <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{::dt.uid}}\" ng-class=\"::dt.customClass\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"::{'text-info': dt.current}\">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n";
159299
159310
 
159300
159311
  /***/ }),
159301
- /* 982 */
159312
+ /* 983 */
159302
159313
  /***/ (function(module, exports) {
159303
159314
 
159304
159315
  module.exports = "<table role=\"grid\" aria-labelledby=\"{{::uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n <thead>\n <tr>\n <th><button type=\"button\" class=\"btn btn-default btn-sm pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\"><i class=\"icon-chevron-left-thin\"></i></button></th>\n <th colspan=\"3\"><button id=\"{{::uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n <th><button type=\"button\" class=\"btn btn-default btn-sm pull-right\" ng-click=\"move(1)\" tabindex=\"-1\"><i class=\"icon-chevron-right-thin\"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat=\"row in rows track by $index\">\n <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{::dt.uid}}\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"::{'text-info': dt.current}\">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n";
159305
159316
 
159306
159317
  /***/ }),
159307
- /* 983 */
159318
+ /* 984 */
159308
159319
  /***/ (function(module, exports) {
159309
159320
 
159310
159321
  module.exports = "<ul class=\"dropdown-menu\" ng-if=\"isOpen\" style=\"display: block\" ng-style=\"{top: position.top+'px', left: position.left+'px'}\" ng-keydown=\"keydown($event)\" ng-click=\"$event.stopPropagation()\">\n\t<li ng-transclude></li>\n\t<li ng-if=\"showButtonBar\" style=\"padding:10px 9px 2px\">\n\t\t<span class=\"btn-group pull-left\">\n\t\t\t<button type=\"button\" class=\"btn btn-sm btn-info\" ng-click=\"select('today')\">{{ getText('current') }}</button>\n\t\t\t<button type=\"button\" class=\"btn btn-sm btn-danger\" ng-click=\"select(null)\">{{ getText('clear') }}</button>\n\t\t</span>\n\t\t<button type=\"button\" class=\"btn btn-sm btn-success pull-right\" ng-click=\"close()\">{{ getText('close') }}</button>\n\t</li>\n</ul>\n";
159311
159322
 
159312
159323
  /***/ }),
159313
- /* 984 */
159324
+ /* 985 */
159314
159325
  /***/ (function(module, exports, __webpack_require__) {
159315
159326
 
159316
159327
  "use strict";
@@ -159653,7 +159664,7 @@ angular.module('superdesk-ui.helper.dropdown', ['superdesk-ui.helper.position'])
159653
159664
  });
159654
159665
 
159655
159666
  /***/ }),
159656
- /* 985 */
159667
+ /* 986 */
159657
159668
  /***/ (function(module, exports, __webpack_require__) {
159658
159669
 
159659
159670
  "use strict";
@@ -159720,7 +159731,7 @@ angular.module('superdesk-ui.helper.modal', []).factory('$$stackedMap', function
159720
159731
  return {
159721
159732
  restrict: 'EA',
159722
159733
  replace: true,
159723
- template: __webpack_require__(986),
159734
+ template: __webpack_require__(987),
159724
159735
  compile: function compile(tElement, tAttrs) {
159725
159736
  tElement.addClass(tAttrs.backdropClass);
159726
159737
  return linkFn;
@@ -159747,7 +159758,7 @@ angular.module('superdesk-ui.helper.modal', []).factory('$$stackedMap', function
159747
159758
  // templateUrl: function templateUrl(tElement, tAttrs) {
159748
159759
  // return tAttrs.templateUrl || '../app/template/window.html';
159749
159760
  // },
159750
- template: __webpack_require__(987),
159761
+ template: __webpack_require__(988),
159751
159762
  link: function link(scope, element, attrs) {
159752
159763
  element.addClass(attrs.windowClass || '');
159753
159764
  scope.size = attrs.size;
@@ -160124,19 +160135,19 @@ angular.module('superdesk-ui.helper.modal', []).factory('$$stackedMap', function
160124
160135
  });
160125
160136
 
160126
160137
  /***/ }),
160127
- /* 986 */
160138
+ /* 987 */
160128
160139
  /***/ (function(module, exports) {
160129
160140
 
160130
160141
  module.exports = "<div class=\"modal__backdrop fade in\"></div>";
160131
160142
 
160132
160143
  /***/ }),
160133
- /* 987 */
160144
+ /* 988 */
160134
160145
  /***/ (function(module, exports) {
160135
160146
 
160136
160147
  module.exports = "<div modal-render=\"{{$isRendered}}\" tabindex=\"-1\" role=\"dialog\" class=\"modal\"\n modal-animation-class=\"fade\"\n modal-in-class=\"in\"\n ng-style=\"{'z-index': 1050 + index * 10, display: 'block'}\"\n ng-class=\"size ? 'modal--' + size : ''\">\n <div class=\"modal__dialog\">\n <div class=\"modal__content\" modal-transclude></div>\n </div>\n</div>\n";
160137
160148
 
160138
160149
  /***/ }),
160139
- /* 988 */
160150
+ /* 989 */
160140
160151
  /***/ (function(module, exports, __webpack_require__) {
160141
160152
 
160142
160153
  "use strict";
@@ -160299,7 +160310,7 @@ angular.module('superdesk-ui.helper.position', [])
160299
160310
  }]);
160300
160311
 
160301
160312
  /***/ }),
160302
- /* 989 */
160313
+ /* 990 */
160303
160314
  /***/ (function(module, exports, __webpack_require__) {
160304
160315
 
160305
160316
  "use strict";
@@ -161525,7 +161536,7 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
161525
161536
  })();
161526
161537
 
161527
161538
  /***/ }),
161528
- /* 990 */
161539
+ /* 991 */
161529
161540
  /***/ (function(module, exports, __webpack_require__) {
161530
161541
 
161531
161542
  "use strict";
@@ -161542,7 +161553,7 @@ function CarouselDirective() {
161542
161553
  finish: '&',
161543
161554
  model: '='
161544
161555
  },
161545
- template: __webpack_require__(991),
161556
+ template: __webpack_require__(992),
161546
161557
  transclude: true,
161547
161558
  controllerAs: 'ctrl',
161548
161559
  controller: ['$scope', '$document', function ($scope, $document) {
@@ -161664,13 +161675,13 @@ function CarouselStepDirective() {
161664
161675
  angular.module('superdesk-ui.carousel', []).directive('sdCarousel', CarouselDirective).directive('sdCarouselStep', CarouselStepDirective);
161665
161676
 
161666
161677
  /***/ }),
161667
- /* 991 */
161678
+ /* 992 */
161668
161679
  /***/ (function(module, exports) {
161669
161680
 
161670
161681
  module.exports = "<div class=\"sd-carousel__backdrop\"></div>\n<div class=\"sd-carousel\">\n <div class=\"sd-carousel__dialog\">\n <div class=\"sd-carousel__content\" ng-transclude></div>\n <a class=\"sd-carousel__nav-button sd-carousel__nav-button--prev\" ng-click=\"ctrl.previous()\" ng-hide=\"pageIndex === 0\"></a>\n <a class=\"sd-carousel__nav-button\" ng-click=\"pageIndex === steps.length-1 ? ctrl.finish() : ctrl.next()\" ng-class=\"pageIndex === steps.length-1 ? 'sd-carousel__nav-button--end' : 'sd-carousel__nav-button--next'\"></a>\n <div class=\"sd-carousel__page-indication-bar\">\n <span ng-repeat=\"step in steps\" \n class=\"sd-carousel__page-indicator\" \n ng-class=\"{'sd-carousel__page-indicator--selected': step.selected}\"\n ng-click=\"goTo(step)\">\n </span>\n </div>\n </div>\n</div>";
161671
161682
 
161672
161683
  /***/ }),
161673
- /* 992 */
161684
+ /* 993 */
161674
161685
  /***/ (function(module, exports, __webpack_require__) {
161675
161686
 
161676
161687
  "use strict";
@@ -161773,7 +161784,7 @@ function sdCheck($parse) {
161773
161784
  angular.module('superdesk-ui.check', []).directive('sdCheck', sdCheck);
161774
161785
 
161775
161786
  /***/ }),
161776
- /* 993 */
161787
+ /* 994 */
161777
161788
  /***/ (function(module, exports, __webpack_require__) {
161778
161789
 
161779
161790
  "use strict";
@@ -161953,7 +161964,7 @@ angular.module("superdesk-ui.dropdown", []).directive("dropdown", sdDropdown).di
161953
161964
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(57)))
161954
161965
 
161955
161966
  /***/ }),
161956
- /* 994 */
161967
+ /* 995 */
161957
161968
  /***/ (function(module, exports, __webpack_require__) {
161958
161969
 
161959
161970
  "use strict";
@@ -162041,7 +162052,7 @@ function sdModal($document, $rootScope) {
162041
162052
  angular.module('superdesk-ui.modals', []).directive('sdModal', sdModal);
162042
162053
 
162043
162054
  /***/ }),
162044
- /* 995 */
162055
+ /* 996 */
162045
162056
  /***/ (function(module, exports, __webpack_require__) {
162046
162057
 
162047
162058
  "use strict";
@@ -162126,7 +162137,7 @@ function sdSwitch() {
162126
162137
  angular.module('superdesk-ui.switch', []).directive('sdSwitch', sdSwitch);
162127
162138
 
162128
162139
  /***/ }),
162129
- /* 996 */
162140
+ /* 997 */
162130
162141
  /***/ (function(module, exports, __webpack_require__) {
162131
162142
 
162132
162143
  "use strict";
@@ -162164,7 +162175,7 @@ function ToggleBoxDirective() {
162164
162175
  angular.module('superdesk-ui.toggleBox', []).directive('sdToggleBox', ToggleBoxDirective);
162165
162176
 
162166
162177
  /***/ }),
162167
- /* 997 */
162178
+ /* 998 */
162168
162179
  /***/ (function(module, exports, __webpack_require__) {
162169
162180
 
162170
162181
  "use strict";
@@ -162199,7 +162210,7 @@ function WizardHandlerFactory() {
162199
162210
  WizardDirective.$inject = [];
162200
162211
  function WizardDirective() {
162201
162212
  return {
162202
- template: __webpack_require__(998),
162213
+ template: __webpack_require__(999),
162203
162214
  scope: {
162204
162215
  currentStep: '=',
162205
162216
  finish: '&',
@@ -162303,7 +162314,7 @@ function WizardDirective() {
162303
162314
  WizardStepDirective.$inject = [];
162304
162315
  function WizardStepDirective() {
162305
162316
  return {
162306
- template: __webpack_require__(999),
162317
+ template: __webpack_require__(1000),
162307
162318
  scope: {
162308
162319
  title: '@',
162309
162320
  code: '@',
@@ -162321,19 +162332,19 @@ function WizardStepDirective() {
162321
162332
  angular.module('superdesk-ui.wizard', []).factory('WizardHandler', WizardHandlerFactory).directive('sdWizard', WizardDirective).directive('sdWizardStep', WizardStepDirective);
162322
162333
 
162323
162334
  /***/ }),
162324
- /* 998 */
162335
+ /* 999 */
162325
162336
  /***/ (function(module, exports) {
162326
162337
 
162327
162338
  module.exports = "<div class=\"modal__body-header\">\n <ul class=\"nav-tabs\">\n <li ng-repeat=\"step in steps\" ng-class=\"{'nav-tabs__tab--active': step.selected}\" class=\"nav-tabs__tab\">\n <button\n ng-click=\"goTo(step)\"\n ng-disabled=\"step.disabled\"\n ng-hide=\"step.hide\"\n class=\"nav-tabs__link\"\n data-test-id=\"wizard--{{step.title}}\"\n >\n {{ step.title}}\n </button>\n </li>\n </ul>\n</div>\n<div class=\"modal__body-content\" ng-transclude></div>";
162328
162339
 
162329
162340
  /***/ }),
162330
- /* 999 */
162341
+ /* 1000 */
162331
162342
  /***/ (function(module, exports) {
162332
162343
 
162333
162344
  module.exports = "<div ng-show=\"selected\" class=\"modal-screen\" ng-transclude></div>\r\n";
162334
162345
 
162335
162346
  /***/ }),
162336
- /* 1000 */
162347
+ /* 1001 */
162337
162348
  /***/ (function(module, exports, __webpack_require__) {
162338
162349
 
162339
162350
  "use strict";
@@ -162362,7 +162373,7 @@ function TagInputDirective($q) {
162362
162373
  maxResultsToShow: '='
162363
162374
  },
162364
162375
  require: '?ngModel',
162365
- template: __webpack_require__(1001),
162376
+ template: __webpack_require__(1002),
162366
162377
  link: function link(scope) {
162367
162378
  scope.loadTags = function (query) {
162368
162379
  return $q(function (resolve, reject) {
@@ -162380,13 +162391,13 @@ function TagInputDirective($q) {
162380
162391
  angular.module('superdesk-ui.tags', []).directive('sdTagInput', TagInputDirective);
162381
162392
 
162382
162393
  /***/ }),
162383
- /* 1001 */
162394
+ /* 1002 */
162384
162395
  /***/ (function(module, exports) {
162385
162396
 
162386
162397
  module.exports = "<label class=\"tags-input__label\" ng-if=\"label\">{{label}}</label>\n<tags-input ng-model=\"model\"\n add-from-autocomplete-only=\"{{items ? !freetext : false}}\"\n show-button=\"{{!!items}}\"\n display-property=\"{{field}}\"\n key-property=\"{{keyProperty}}\"\n use-strings=\"{{!field}}\"\n ng-required=\"required\"\n on-tag-added=\"onChange($tag)\"\n on-tag-removed=\"onChange($tag)\"\n replace-spaces-with-dashes=\"{{replaceSpacesWithDashes}}\"\n min-length=\"{{minLength}}\"\n max-length=\"{{maxLength}}\"\n max-tags=\"{{maxTags}}\"\n max-items=\"{{maxItems}}\"\n boxed={{boxed}}\n placeholder=\"{{placeholder}}\">\n\n <auto-complete ng-if=\"items\"\n source=\"loadTags($query)\"\n load-on-empty=\"true\"\n min-length=\"{{minLength}}\"\n display-property=\"{{field}}\"\n key-property=\"{{keyProperty}}\"\n max-results-to-show=\"{{maxResultsToShow}}\">\n </auto-complete>\n</tags-input>\n";
162387
162398
 
162388
162399
  /***/ }),
162389
- /* 1002 */
162400
+ /* 1003 */
162390
162401
  /***/ (function(module, exports, __webpack_require__) {
162391
162402
 
162392
162403
  "use strict";
@@ -162403,7 +162414,7 @@ module.exports = "<label class=\"tags-input__label\" ng-if=\"label\">{{label}}</
162403
162414
  */
162404
162415
  function LineInputDirective() {
162405
162416
  return {
162406
- template: __webpack_require__(1003),
162417
+ template: __webpack_require__(1004),
162407
162418
  replace: true,
162408
162419
  transclude: true,
162409
162420
  require: '?ngModel',
@@ -162445,13 +162456,13 @@ function LineInputDirective() {
162445
162456
  angular.module('superdesk-ui.lineInput', []).directive('sdLineInput', LineInputDirective);
162446
162457
 
162447
162458
  /***/ }),
162448
- /* 1003 */
162459
+ /* 1004 */
162449
162460
  /***/ (function(module, exports) {
162450
162461
 
162451
162462
  module.exports = " <div class=\"sd-line-input\" ng-class=\"{'sd-line-input--dark-ui': dark, 'sd-line-input--boxed': boxed, 'sd-line-input--required': required}\">\n <label class=\"sd-line-input__label\" translate>{{label}}</label>\n\n <input class=\"sd-line-input__input\" type=\"text\" ng-model=\"modelFixed.value\" ng-change=\"update(modelFixed.value)\" ng-blur=\"onblur()\" ng-disabled=\"disabled\" placeholder=\"{{placeholder}}\" ng-if=\"!transclude && !textarea\">\n\n <textarea class=\"sd-line-input__input\"\n ng-model=\"modelFixed.value\"\n ng-change=\"update(modelFixed.value)\"\n ng-blur=\"onblur()\"\n ng-disabled=\"disabled\"\n placeholder=\"{{placeholder}}\"\n ng-if=\"textarea\"\n sd-auto-height>\n </textarea>\n\n <ng-transclude></ng-transclude>\n <div class=\"sd-line-input__char-count\" ng-if=\"maxlength\" sd-character-count data-item=\"modelFixed.value\" data-limit=\"maxlength\" data-html=\"true\"></div>\n</div>\n";
162452
162463
 
162453
162464
  /***/ }),
162454
- /* 1004 */
162465
+ /* 1005 */
162455
162466
  /***/ (function(module, exports, __webpack_require__) {
162456
162467
 
162457
162468
  "use strict";
@@ -162471,7 +162482,7 @@ module.exports = " <div class=\"sd-line-input\" ng-class=\"{'sd-line-input--dark
162471
162482
  */
162472
162483
  function SearchHandlerDirective() {
162473
162484
  return {
162474
- template: __webpack_require__(1005),
162485
+ template: __webpack_require__(1006),
162475
162486
  replace: true,
162476
162487
  transclude: true,
162477
162488
  require: '?ngModel',
@@ -162497,13 +162508,13 @@ function SearchHandlerDirective() {
162497
162508
  angular.module('superdesk-ui.searchHandler', []).directive('sdSearchHandler', SearchHandlerDirective);
162498
162509
 
162499
162510
  /***/ }),
162500
- /* 1005 */
162511
+ /* 1006 */
162501
162512
  /***/ (function(module, exports) {
162502
162513
 
162503
162514
  module.exports = "<div class=\"flat-searchbar extended\">\n <div class=\"search-handler\" ng-class=\"{'search-handler--left-border': borderleft}\">\n <label for=\"search-input\" class=\"trigger-icon\"><i class=\"icon-search\"></i></label>\n <input id=\"search-input\" type=\"text\" placeholder=\"{{ :: label || 'Search' }}\" ng-model=\"model\" ng-model-options=\"{debounce: debounce}\">\n <button class=\"search-close\" ng-if=\"model.length\" ng-click=\"clearInput()\" ng-class=\"{visible: model.length}\"><i class=\"icon-remove-sign\"></i></button>\n\n <button class=\"search-close\" ng-if=\"button && model.length\" ng-click=\"\" ng-class=\"{visible: button && model.length}\">\n <i class=\"big-icon--chevron-right\"></i>\n </button>\n </div>\n</div>\n";
162504
162515
 
162505
162516
  /***/ }),
162506
- /* 1006 */
162517
+ /* 1007 */
162507
162518
  /***/ (function(module, exports, __webpack_require__) {
162508
162519
 
162509
162520
  "use strict";
@@ -162519,7 +162530,7 @@ function sdCircularProgress() {
162519
162530
  error: '=',
162520
162531
  counter: '='
162521
162532
  },
162522
- template: __webpack_require__(1007),
162533
+ template: __webpack_require__(1008),
162523
162534
  link: function link(scope, element) {
162524
162535
  var elem = $(element).find('.progress-svg');
162525
162536
 
@@ -162565,13 +162576,13 @@ angular.module('superdesk-ui.circularProgress', []).directive('sdCircularProgres
162565
162576
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(57)))
162566
162577
 
162567
162578
  /***/ }),
162568
- /* 1007 */
162579
+ /* 1008 */
162569
162580
  /***/ (function(module, exports) {
162570
162581
 
162571
162582
  module.exports = "<div class=\"progress-bar-container\">\n <div class=\"progress-done\" ng-class=\"{'progress-done--completed': status === 'completed', 'progress-done--error': status === 'error'}\">\n <i class=\"icon-ok\" ng-hide=\"status === 'error'\"></i>\n <i class=\"icon-close-small\" ng-hide=\"status === 'completed'\"></i>\n </div>\n <span class=\"progress-text\" ng-if=\"counter\">{{value}}<em>%</em></span>\n <svg class=\"progress-svg\">\n <circle ng-attr-r=\"{{radius}}\" ng-attr-cx=\"50%\" ng-attr-cy=\"50%\"></circle>\n <circle class=\"progressbar\" ng-attr-r=\"{{radius}}\" ng-attr-cx=\"50%\" ng-attr-cy=\"50%\" ng-style=\"{'stroke-dashoffset': dashOffset, 'stroke-dasharray': circumference}\"></circle>\n </svg>\n</div>";
162572
162583
 
162573
162584
  /***/ }),
162574
- /* 1008 */
162585
+ /* 1009 */
162575
162586
  /***/ (function(module, exports, __webpack_require__) {
162576
162587
 
162577
162588
  "use strict";
@@ -162616,7 +162627,7 @@ function SplitterDirective($window) {
162616
162627
  angular.module('superdesk-ui.splitter', []).directive('sdSplitter', SplitterDirective);
162617
162628
 
162618
162629
  /***/ }),
162619
- /* 1009 */
162630
+ /* 1010 */
162620
162631
  /***/ (function(module, exports, __webpack_require__) {
162621
162632
 
162622
162633
  "use strict";
@@ -162657,16 +162668,16 @@ function MediaQuery($window) {
162657
162668
  angular.module('superdesk-ui.mediaQuery', []).directive('sdMediaQuery', MediaQuery);
162658
162669
 
162659
162670
  /***/ }),
162660
- /* 1010 */
162671
+ /* 1011 */
162661
162672
  /***/ (function(module, exports, __webpack_require__) {
162662
162673
 
162663
162674
  "use strict";
162664
162675
 
162665
162676
 
162666
- __webpack_require__(1011);
162677
+ __webpack_require__(1012);
162667
162678
 
162668
162679
  /***/ }),
162669
- /* 1011 */
162680
+ /* 1012 */
162670
162681
  /***/ (function(module, exports) {
162671
162682
 
162672
162683
  // removed by extract-text-webpack-plugin