ods-component-lib 1.18.42 → 1.18.45

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.
@@ -0,0 +1,4 @@
1
+ import { BadgeProps } from "antd";
2
+ import React from "react";
3
+ declare function OdsBadge(props: BadgeProps): React.JSX.Element;
4
+ export default OdsBadge;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledBadge: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("antd").BadgeProps & import("react").RefAttributes<HTMLSpanElement>> & {
3
+ Ribbon: import("react").FC<import("antd/es/badge/Ribbon").RibbonProps>;
4
+ }, any, {}, never>;
@@ -0,0 +1,4 @@
1
+ import { BadgeProps } from "antd";
2
+ import React from "react";
3
+ declare function OdsBadgeRibbon(props: BadgeProps): React.JSX.Element;
4
+ export default OdsBadgeRibbon;
package/dist/index.css CHANGED
@@ -151,4 +151,10 @@ tr._2CvVM._3Xrp3._19iuB._3udtX {
151
151
  padding: 0;
152
152
  /* -webkit-padding-end: 5px; */
153
153
  padding-inline-end: 0 !important;
154
+ }
155
+
156
+ ._33d3-._2P5bw {
157
+ width: -moz-max-content;
158
+ width: max-content;
159
+ display: inline-block;
154
160
  }
package/dist/index.d.ts CHANGED
@@ -44,8 +44,9 @@ import OdsTitle from "./components/antd/typography/OdsTitle";
44
44
  import OdsDataGrid from "./components/devextreme/OdsDataGrid";
45
45
  import OdsDisplayGrid from "./components/devextreme/OdsDisplayGrid";
46
46
  import DxTreeList from "./components/devextreme/treeview/DxTreeList";
47
- import DxTreeView from "./components/devextreme/treeview/DxTreeView";
48
47
  import OdsRemoteDataGrid from "./components/devextreme/OdsRemoteDataGrid";
48
+ import OdsBadge from "./components/antd/badge/OdsBadge";
49
+ import OdsBadgeRibbon from "./components/antd/badge/OdsBadgeRibbon";
49
50
  export { OdsButton };
50
51
  export { OdsInput };
51
52
  export { OdsDropdownButton };
@@ -86,11 +87,12 @@ export { OdsTitle };
86
87
  export { OdsParagraph };
87
88
  export { OdsLink };
88
89
  export { OdsNotification };
89
- export { DxTreeView };
90
90
  export { DxTreeList };
91
91
  export { OdsAlert };
92
92
  export { OdsBannerAlert };
93
93
  export { OdsMultiSelect };
94
+ export { OdsBadge };
95
+ export { OdsBadgeRibbon };
94
96
  export { OdsDataGrid };
95
97
  export { OdsDisplayGrid };
96
98
  export { OdsRemoteDataGrid };
package/dist/index.js CHANGED
@@ -23,7 +23,6 @@ var fileSaverEs = require('file-saver-es');
23
23
  var moment = _interopDefault(require('moment'));
24
24
  var outline = require('ods-icon/react/24/outline');
25
25
  var devextremeReact = require('devextreme-react');
26
- var treeView = require('devextreme-react/tree-view');
27
26
 
28
27
  function _extends() {
29
28
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -1124,14 +1123,16 @@ var dayjs_min = createCommonjsModule(function (module, exports) {
1124
1123
  !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0;}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return b},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return a+1;case"MM":return b.s(a+1,2,"0");case"MMM":return h(n.monthsShort,a,c,3);case"MMMM":return h(c,a);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,o,2);case"ddd":return h(n.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return $(s,u,!0);case"A":return $(s,u,!1);case"m":return String(u);case"mm":return b.s(u,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g;}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));
1125
1124
  });
1126
1125
 
1126
+ var format = "HH:mm";
1127
1127
  function StyledOdsTimepicker(props) {
1128
- var format = "HH:mm";
1129
1128
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(StyledTimepicker, Object.assign({}, props, {
1130
1129
  defaultValue: dayjs_min("00:00", format)
1131
1130
  })));
1132
1131
  }
1133
1132
  var OdsTimepicker = function OdsTimepicker(props) {
1134
- return React__default.createElement(StyledOdsTimepicker, Object.assign({}, props));
1133
+ return React__default.createElement(StyledOdsTimepicker, Object.assign({}, props, {
1134
+ defaultValue: dayjs_min("00:00", format)
1135
+ }));
1135
1136
  };
1136
1137
 
1137
1138
  var _templateObject$m;
@@ -1581,24 +1582,6 @@ var DxTreeList = function DxTreeList(props) {
1581
1582
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(devextremeReact.TreeList, Object.assign({}, props), props.children));
1582
1583
  };
1583
1584
 
1584
- var DxTreeView = function DxTreeView(props) {
1585
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(treeView.TreeView, {
1586
- id: "treeView",
1587
- dataSource: props.dataSource,
1588
- dataStructure: props.dataStructure !== undefined ? props.dataStructure : "plain",
1589
- keyExpr: props.keyExpr,
1590
- displayExpr: props.displayExpr,
1591
- parentIdExpr: props.parentIdExp,
1592
- searchEnabled: true,
1593
- searchMode: "contains",
1594
- expandAllEnabled: props.expandAllEnabled !== undefined ? props.expandAllEnabled : false,
1595
- expandedExpr: "expanded",
1596
- scrollDirection: "vertical",
1597
- selectNodesRecursive: true,
1598
- visible: true
1599
- }));
1600
- };
1601
-
1602
1585
  // A type of promise-like that resolves synchronously and supports only one observer
1603
1586
 
1604
1587
  const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator";
@@ -16461,6 +16444,9 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
16461
16444
  columns = _useState4[0],
16462
16445
  setColumns = _useState4[1];
16463
16446
  var gridRef = React.useRef(null);
16447
+ var _useState5 = React.useState(false),
16448
+ filterApplied = _useState5[0],
16449
+ setFilterApplied = _useState5[1];
16464
16450
  var onCancelEditEvent = new CustomEvent('cancelEdit', {
16465
16451
  bubbles: true,
16466
16452
  detail: {
@@ -16575,7 +16561,7 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
16575
16561
  } else if (totalPageCount >= loadedPageCount) {
16576
16562
  setData(function (prevData) {
16577
16563
  var uniqueData = newData.Data.filter(function (newItem) {
16578
- return !prevData.some(function (prevItem) {
16564
+ return !newItem.Id || newItem.Id <= 0 || !prevData.some(function (prevItem) {
16579
16565
  return prevItem.Id === newItem.Id;
16580
16566
  });
16581
16567
  });
@@ -16619,9 +16605,7 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
16619
16605
  }
16620
16606
  if (e.editorOptions && e.rowType === 'data' && e.parentType === 'dataRow') {
16621
16607
  e.editorOptions.onValueChanged = function (args) {
16622
- if (args.event && args.event.type === 'cancel') {
16623
- e.cellElement.dispatchEvent(onCancelEditEvent);
16624
- }
16608
+ if (args.event && args.event.type === 'cancel') e.cellElement.dispatchEvent(onCancelEditEvent);
16625
16609
  };
16626
16610
  }
16627
16611
  }, [props.isServerSide]);
@@ -16712,6 +16696,11 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
16712
16696
  };else state.filterPanel = {
16713
16697
  filterEnabled: true
16714
16698
  };
16699
+ if (data.length === 0) {
16700
+ if (!state.filterValue && state.filterValue !== null) {
16701
+ state.filterValue = null;
16702
+ }
16703
+ }
16715
16704
  localStorage.setItem(props.exportFileName + "Storage", JSON.stringify(state));
16716
16705
  }, [props.filterEnabledShow]);
16717
16706
  var onEditorPrepared = React.useCallback(function (info) {
@@ -16739,23 +16728,21 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
16739
16728
  }
16740
16729
  if (props.isServerSide) {
16741
16730
  result = totalRecordCount > 0 ? totalloaded + " " + props.customSummary.summaryLoadedDataLabel + ("- " + totalRecordCount) + props.customSummary.summaryTotalDataLabel : "";
16742
- if (filteredRowCount > 0 && totalloaded !== filteredRowCount) {
16743
- var filteredLabel = filteredRowCount + " " + props.customSummary.summaryFilteredDataLabel + "- ";
16744
- result = filteredLabel + " " + result;
16745
- }
16731
+ result = concatFilteredLabel(result, totalloaded);
16746
16732
  }
16747
16733
  if (props.customSummary.summaryTotalCount !== undefined && !props.isServerSide) {
16748
16734
  result = props.customSummary.summaryTotalDataLabel + " : " + props.customSummary.summaryTotalCount;
16735
+ result = concatFilteredLabel(result, totalloaded);
16749
16736
  }
16750
16737
  return result;
16751
- }, [data, filteredRowCount, loadedPageCount, props.pageSize, totalRecordCount]);
16752
- var renderTotalPaging = React.useCallback(function () {
16753
- var result = "";
16754
- if (totalPageCount > 1) {
16755
- result = loadedPageCount + " / " + totalPageCount;
16738
+ }, [data, filteredRowCount, loadedPageCount, props.pageSize, totalRecordCount, filterApplied]);
16739
+ var concatFilteredLabel = function concatFilteredLabel(result, totalloaded) {
16740
+ if (filteredRowCount > 0 && totalloaded !== filteredRowCount && filterApplied) {
16741
+ var filteredLabel = filteredRowCount + " " + props.customSummary.summaryFilteredDataLabel + "- ";
16742
+ result = filteredLabel + " " + result;
16756
16743
  }
16757
16744
  return result;
16758
- }, [loadedPageCount, totalPageCount]);
16745
+ };
16759
16746
  var actionCellRender = React.useMemo(function () {
16760
16747
  return React__default.createElement(devextremeReact.DropDownButton, {
16761
16748
  icon: server_browser.renderToString(React__default.createElement(DynamicIcon, {
@@ -16778,18 +16765,12 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
16778
16765
  var height = (_scrollable$clientHei = scrollable === null || scrollable === void 0 ? void 0 : scrollable.clientHeight) != null ? _scrollable$clientHei : 0;
16779
16766
  var scrollHeight = (_scrollable$scrollHei = scrollable === null || scrollable === void 0 ? void 0 : scrollable.scrollHeight) != null ? _scrollable$scrollHei : 0;
16780
16767
  var maxHeight = Math.max(top, height, scrollHeight) - 1;
16781
- if (scrollHeight <= height) {
16782
- return;
16783
- }
16768
+ if (scrollHeight <= height) return;
16784
16769
  var reachedBottom = Math.ceil(top + height) >= maxHeight;
16785
16770
  var lastScrollTop = 0;
16786
- if (top < lastScrollTop) {
16787
- return;
16788
- }
16771
+ if (top < lastScrollTop) return;
16789
16772
  lastScrollTop = top <= 0 ? 0 : top;
16790
- if (reachedBottom) {
16791
- onScrollEnd();
16792
- }
16773
+ if (reachedBottom) onScrollEnd();
16793
16774
  }, 200);
16794
16775
  run(e);
16795
16776
  };
@@ -16808,6 +16789,9 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
16808
16789
  var filteredDataCount = dataGridInstance.totalCount();
16809
16790
  setFilteredRowCount(filteredDataCount);
16810
16791
  };
16792
+ var onFilterValueChange = function onFilterValueChange(e) {
16793
+ if (e !== null) setFilterApplied(true);else setFilterApplied(false);
16794
+ };
16811
16795
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(DataGrid__default, {
16812
16796
  keyExpr: props.keyExpr,
16813
16797
  dataSource: data,
@@ -16842,7 +16826,8 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
16842
16826
  onSaved: props.onSaved,
16843
16827
  onSaving: props.onSaving,
16844
16828
  onEditCanceling: props.onEditCanceling,
16845
- onContentReady: handleContentReady
16829
+ onContentReady: handleContentReady,
16830
+ onFilterValueChange: onFilterValueChange
16846
16831
  }, columns.map(function (col) {
16847
16832
  return React__default.createElement(DataGrid.Column, Object.assign({
16848
16833
  key: col.dataField
@@ -16994,14 +16979,9 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
16994
16979
  cssClass: 'toolbarPanelItems'
16995
16980
  })), React__default.createElement(DataGrid.Summary, null, React__default.createElement(DataGrid.TotalItem, {
16996
16981
  column: columns[0].dataField,
16997
- summaryType: "sum",
16982
+ summaryType: "custom",
16998
16983
  displayFormat: "customizeText",
16999
16984
  customizeText: renderTotal
17000
- }), React__default.createElement(DataGrid.TotalItem, {
17001
- column: columns[1].dataField,
17002
- summaryType: "sum",
17003
- displayFormat: "customizeText",
17004
- customizeText: renderTotalPaging
17005
16985
  })), React__default.createElement(DataGrid.StateStoring, {
17006
16986
  enabled: true,
17007
16987
  type: "custom",
@@ -17010,10 +16990,26 @@ var OdsRemoteDataGrid = function OdsRemoteDataGrid(props) {
17010
16990
  })));
17011
16991
  };
17012
16992
 
16993
+ var _templateObject$n;
16994
+ var StyledBadge = styled__default(antd.Badge)(_templateObject$n || (_templateObject$n = _taggedTemplateLiteralLoose(["\n //\n"])));
16995
+
16996
+ function OdsBadge(props) {
16997
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(styled.ThemeProvider, {
16998
+ theme: lightTheme
16999
+ }, React__default.createElement(StyledBadge, Object.assign({}, props), props.children)));
17000
+ }
17001
+
17002
+ function OdsBadgeRibbon(props) {
17003
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(styled.ThemeProvider, {
17004
+ theme: lightTheme
17005
+ }, React__default.createElement(StyledBadge.Ribbon, Object.assign({}, props), props.children)));
17006
+ }
17007
+
17013
17008
  exports.DxTreeList = DxTreeList;
17014
- exports.DxTreeView = DxTreeView;
17015
17009
  exports.OdsAlert = OdsAlert;
17016
17010
  exports.OdsAutoComplete = OdsAutoComplete;
17011
+ exports.OdsBadge = OdsBadge;
17012
+ exports.OdsBadgeRibbon = OdsBadgeRibbon;
17017
17013
  exports.OdsBannerAlert = OdsBannerAlert;
17018
17014
  exports.OdsBasicTable = OdsBasicTable;
17019
17015
  exports.OdsButton = OdsButton;