dinocollab-core 2.1.27 → 2.1.29

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 (195) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +2 -2
  2. package/dist/src/api-context/alert-global.js +1 -1
  3. package/dist/src/api-context/alert-global.js.map +1 -1
  4. package/dist/src/api-context/drawer-global.js +1 -1
  5. package/dist/src/api-context/drawer-global.js.map +1 -1
  6. package/dist/src/api-context/global-modal.js +1 -1
  7. package/dist/src/api-context/global-modal.js.map +1 -1
  8. package/dist/src/api-context/popover-global.js +1 -1
  9. package/dist/src/api-context/popover-global.js.map +1 -1
  10. package/dist/src/api-context/popover.js +1 -1
  11. package/dist/src/api-context/popover.js.map +1 -1
  12. package/dist/src/components/breadcrumbs.js +1 -1
  13. package/dist/src/components/breadcrumbs.js.map +1 -1
  14. package/dist/src/components/copy-to-clipboard.js +1 -1
  15. package/dist/src/components/copy-to-clipboard.js.map +1 -1
  16. package/dist/src/components/create.multi-select-dropdown.js +1 -1
  17. package/dist/src/components/create.multi-select-dropdown.js.map +1 -1
  18. package/dist/src/components/help-tooltip.js +1 -1
  19. package/dist/src/components/help-tooltip.js.map +1 -1
  20. package/dist/src/components/image-with-fallback.js +1 -1
  21. package/dist/src/components/image-with-fallback.js.map +1 -1
  22. package/dist/src/components/rich-tooltip.js +1 -1
  23. package/dist/src/components/rich-tooltip.js.map +1 -1
  24. package/dist/src/components/text-editor.js +1 -1
  25. package/dist/src/components/text-editor.js.map +1 -1
  26. package/dist/src/components/text-editor.preview.js +1 -1
  27. package/dist/src/components/text-editor.preview.js.map +1 -1
  28. package/dist/src/data-view/animation-switch.js +1 -1
  29. package/dist/src/data-view/animation-switch.js.map +1 -1
  30. package/dist/src/data-view/convert-filter-to-graphql.js +1 -1
  31. package/dist/src/data-view/convert-filter-to-graphql.js.map +1 -1
  32. package/dist/src/data-view/create.active-filters-panel.js +1 -1
  33. package/dist/src/data-view/create.active-filters-panel.js.map +1 -1
  34. package/dist/src/data-view/create.data-view.js +1 -1
  35. package/dist/src/data-view/create.data-view.js.map +1 -1
  36. package/dist/src/data-view/create.filter-bar.js +1 -1
  37. package/dist/src/data-view/create.filter-bar.js.map +1 -1
  38. package/dist/src/data-view/create.filter-menu.js +1 -1
  39. package/dist/src/data-view/create.filter-menu.js.map +1 -1
  40. package/dist/src/data-view/create.pagination-bar.js +1 -1
  41. package/dist/src/data-view/create.pagination-bar.js.map +1 -1
  42. package/dist/src/data-view/create.popper-panel.js +1 -1
  43. package/dist/src/data-view/create.popper-panel.js.map +1 -1
  44. package/dist/src/data-view/create.search-match.js +1 -1
  45. package/dist/src/data-view/create.search-match.js.map +1 -1
  46. package/dist/src/data-view/create.sort-menu.js +1 -1
  47. package/dist/src/data-view/create.sort-menu.js.map +1 -1
  48. package/dist/src/data-view/create.view-mode.js +1 -1
  49. package/dist/src/data-view/create.view-mode.js.map +1 -1
  50. package/dist/src/data-view/dino.js +1 -1
  51. package/dist/src/data-view/dino.js.map +1 -1
  52. package/dist/src/data-view/filter-store.js +1 -1
  53. package/dist/src/data-view/filter-store.js.map +1 -1
  54. package/dist/src/data-view/helpers.js +1 -1
  55. package/dist/src/data-view/helpers.js.map +1 -1
  56. package/dist/src/data-view/scroll-tracking.js +1 -1
  57. package/dist/src/data-view/scroll-tracking.js.map +1 -1
  58. package/dist/src/data-view/ui.units.js +1 -1
  59. package/dist/src/data-view/ui.units.js.map +1 -1
  60. package/dist/src/data-view/view-mode.content.js +1 -1
  61. package/dist/src/data-view/view-mode.content.js.map +1 -1
  62. package/dist/src/data-view/view-mode.units.js +1 -1
  63. package/dist/src/data-view/view-mode.units.js.map +1 -1
  64. package/dist/src/form/create.autocomplete.chips.js +1 -1
  65. package/dist/src/form/create.autocomplete.chips.js.map +1 -1
  66. package/dist/src/form/create.color-picker.js +1 -1
  67. package/dist/src/form/create.color-picker.js.map +1 -1
  68. package/dist/src/form/create.date-expired.js +1 -1
  69. package/dist/src/form/create.date-expired.js.map +1 -1
  70. package/dist/src/form/create.date-picker.js +1 -1
  71. package/dist/src/form/create.date-picker.js.map +1 -1
  72. package/dist/src/form/create.form-base.js +1 -1
  73. package/dist/src/form/create.form-base.js.map +1 -1
  74. package/dist/src/form/create.form-comfirm.js +1 -1
  75. package/dist/src/form/create.form-comfirm.js.map +1 -1
  76. package/dist/src/form/create.form-grid-layout.js +1 -1
  77. package/dist/src/form/create.form-grid-layout.js.map +1 -1
  78. package/dist/src/form/create.input-file.csv-local-parser.js +1 -1
  79. package/dist/src/form/create.input-file.csv-local-parser.js.map +1 -1
  80. package/dist/src/form/create.input.file.js +1 -1
  81. package/dist/src/form/create.input.file.js.map +1 -1
  82. package/dist/src/form/create.input.image-file.js +1 -1
  83. package/dist/src/form/create.input.image-file.js.map +1 -1
  84. package/dist/src/form/create.input.js +1 -1
  85. package/dist/src/form/create.input.js.map +1 -1
  86. package/dist/src/form/create.select-simple.js +1 -1
  87. package/dist/src/form/create.select-simple.js.map +1 -1
  88. package/dist/src/form/create.select-with-api.js +1 -1
  89. package/dist/src/form/create.select-with-api.js.map +1 -1
  90. package/dist/src/form/create.text-editor.js +1 -1
  91. package/dist/src/form/create.text-editor.js.map +1 -1
  92. package/dist/src/form/decorator.form.js +1 -1
  93. package/dist/src/form/decorator.form.js.map +1 -1
  94. package/dist/src/form/decorator.js +1 -1
  95. package/dist/src/form/decorator.js.map +1 -1
  96. package/dist/src/form/dino-form.js +1 -1
  97. package/dist/src/form/dino-form.js.map +1 -1
  98. package/dist/src/form/helpers.js +1 -1
  99. package/dist/src/form/helpers.js.map +1 -1
  100. package/dist/src/form/modal-wrapper.js +1 -1
  101. package/dist/src/form/modal-wrapper.js.map +1 -1
  102. package/dist/src/form/validator.js +1 -1
  103. package/dist/src/form/validator.js.map +1 -1
  104. package/dist/src/hooks/check-scrolled.js +1 -1
  105. package/dist/src/hooks/check-scrolled.js.map +1 -1
  106. package/dist/src/hooks/debounce.js +1 -1
  107. package/dist/src/hooks/debounce.js.map +1 -1
  108. package/dist/src/hooks/use-fetch-data.js +1 -1
  109. package/dist/src/hooks/use-fetch-data.js.map +1 -1
  110. package/dist/src/http-service/base/crud-service-base.js +1 -1
  111. package/dist/src/http-service/base/crud-service-base.js.map +1 -1
  112. package/dist/src/http-service/base/helpers.js +1 -1
  113. package/dist/src/http-service/base/helpers.js.map +1 -1
  114. package/dist/src/http-service/base/service-base.js +1 -1
  115. package/dist/src/http-service/base/service-base.js.map +1 -1
  116. package/dist/src/http-service/graphql/app-profile.js +1 -1
  117. package/dist/src/http-service/graphql/app-profile.js.map +1 -1
  118. package/dist/src/http-service/graphql/graphql-request.js +1 -1
  119. package/dist/src/http-service/graphql/graphql-request.js.map +1 -1
  120. package/dist/src/http-service/graphql/request-param.js +1 -1
  121. package/dist/src/http-service/graphql/request-param.js.map +1 -1
  122. package/dist/src/lab/attach-widget/helpers.js +1 -1
  123. package/dist/src/lab/attach-widget/helpers.js.map +1 -1
  124. package/dist/src/lab/attach-widget/modal.js +1 -1
  125. package/dist/src/lab/attach-widget/modal.js.map +1 -1
  126. package/dist/src/lab/attach-widget/styled.js +1 -1
  127. package/dist/src/lab/attach-widget/styled.js.map +1 -1
  128. package/dist/src/lab/attach-widget/widget.js +1 -1
  129. package/dist/src/lab/attach-widget/widget.js.map +1 -1
  130. package/dist/src/lab/input.social-links/create.js +1 -1
  131. package/dist/src/lab/input.social-links/create.js.map +1 -1
  132. package/dist/src/lab/input.social-links/units.js +1 -1
  133. package/dist/src/lab/input.social-links/units.js.map +1 -1
  134. package/dist/src/mfe-shared/navigation.js +1 -1
  135. package/dist/src/mfe-shared/navigation.js.map +1 -1
  136. package/dist/src/redux/create.hoc-lazy.js +1 -1
  137. package/dist/src/redux/create.hoc-lazy.js.map +1 -1
  138. package/dist/src/redux/dino.js +1 -1
  139. package/dist/src/redux/dino.js.map +1 -1
  140. package/dist/src/redux/ui.error-page.js +1 -1
  141. package/dist/src/redux/ui.error-page.js.map +1 -1
  142. package/dist/src/table/create.action-row.js +1 -1
  143. package/dist/src/table/create.action-row.js.map +1 -1
  144. package/dist/src/table/create.table.js +1 -1
  145. package/dist/src/table/create.table.js.map +1 -1
  146. package/dist/src/table/custom.filter-operators.js +1 -1
  147. package/dist/src/table/custom.filter-operators.js.map +1 -1
  148. package/dist/src/table/dino.js +1 -1
  149. package/dist/src/table/dino.js.map +1 -1
  150. package/dist/src/table/helpers.js +1 -1
  151. package/dist/src/table/helpers.js.map +1 -1
  152. package/dist/src/table/toolbar-pannel.js +1 -1
  153. package/dist/src/table/toolbar-pannel.js.map +1 -1
  154. package/dist/src/table/ui.buttons.js +1 -1
  155. package/dist/src/table/ui.buttons.js.map +1 -1
  156. package/dist/src/table/ui.units.js +1 -1
  157. package/dist/src/table/ui.units.js.map +1 -1
  158. package/dist/src/table-grid/create.table-grid.js +1 -1
  159. package/dist/src/table-grid/create.table-grid.js.map +1 -1
  160. package/dist/src/table-grid/dino.js +1 -1
  161. package/dist/src/table-grid/dino.js.map +1 -1
  162. package/dist/src/table-grid/filter-bar/base.js +1 -1
  163. package/dist/src/table-grid/filter-bar/base.js.map +1 -1
  164. package/dist/src/table-grid/filter-bar/create.filter-bar.js +1 -1
  165. package/dist/src/table-grid/filter-bar/create.filter-bar.js.map +1 -1
  166. package/dist/src/table-grid/filter-bar/create.filter-menu.js +1 -1
  167. package/dist/src/table-grid/filter-bar/create.filter-menu.js.map +1 -1
  168. package/dist/src/table-grid/filter-bar/create.filter-panel.js +1 -1
  169. package/dist/src/table-grid/filter-bar/create.filter-panel.js.map +1 -1
  170. package/dist/src/table-grid/filter-bar/create.filtered.js +1 -1
  171. package/dist/src/table-grid/filter-bar/create.filtered.js.map +1 -1
  172. package/dist/src/table-grid/filter-bar/ui.units.js +1 -1
  173. package/dist/src/table-grid/filter-bar/ui.units.js.map +1 -1
  174. package/dist/src/table-grid/helpers.js +1 -1
  175. package/dist/src/table-grid/helpers.js.map +1 -1
  176. package/dist/src/table-grid/item-actions.js +1 -1
  177. package/dist/src/table-grid/item-actions.js.map +1 -1
  178. package/dist/src/table-grid/styled.js +2 -0
  179. package/dist/src/table-grid/styled.js.map +1 -0
  180. package/dist/src/table-grid/toolbar-pannel.js +1 -1
  181. package/dist/src/table-grid/toolbar-pannel.js.map +1 -1
  182. package/dist/src/table-grid/url-query-param.js +1 -1
  183. package/dist/src/table-grid/url-query-param.js.map +1 -1
  184. package/dist/src/utils/helpers.js +1 -1
  185. package/dist/src/utils/helpers.js.map +1 -1
  186. package/dist/src/utils/json-object.js +1 -1
  187. package/dist/src/utils/json-object.js.map +1 -1
  188. package/dist/src/utils/query-param.js +1 -1
  189. package/dist/src/utils/query-param.js.map +1 -1
  190. package/dist/types/mfe-shared/navigation.d.ts +5 -2
  191. package/dist/types/table-grid/create.table-grid.d.ts +2 -2
  192. package/dist/types/table-grid/helpers.d.ts +0 -11
  193. package/dist/types/table-grid/styled.d.ts +19 -0
  194. package/dist/types/table-grid/types.d.ts +6 -1
  195. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dino.js","sources":["../../../src/table-grid/dino.tsx"],"sourcesContent":["import CreateLayoutGrid from './create.table-grid'\r\nimport { defaultPagination } from './helpers'\r\nimport UrlQueryParam from './url-query-param'\r\n\r\nclass DinoTableGridBase {\r\n defaultPagination = defaultPagination\r\n\r\n createTable = CreateLayoutGrid\r\n\r\n setUrlQuery = UrlQueryParam.setUrlQuery\r\n\r\n getUrlQuery = UrlQueryParam.getUrlQuery\r\n}\r\n\r\nconst DinoTableGrid = new DinoTableGridBase()\r\nexport default DinoTableGrid\r\n"],"names":["DinoTableGrid","_createClass","DinoTableGridBase","_classCallCheck","_defineProperty","defaultPagination","CreateLayoutGrid","this","UrlQueryParam","setUrlQuery","getUrlQuery"],"mappings":"6OAE6C,IAYvCA,EAAgB,IAVCC,GAAA,SAAAC,IAAAC,OAAAD,GAAAE,2BACDC,GAAiBD,qBAEvBE,GAAgBF,EAAAG,KAAA,cAEhBC,EAAcC,aAAWL,EAAAG,KAAA,cAEzBC,EAAcE,YAAW"}
1
+ {"version":3,"file":"dino.js","sources":["../../../src/table-grid/dino.tsx"],"sourcesContent":["import CreateLayoutGrid from './create.table-grid'\r\nimport { defaultPagination } from './helpers'\r\nimport UrlQueryParam from './url-query-param'\r\n\r\nclass DinoTableGridBase {\r\n defaultPagination = defaultPagination\r\n\r\n createTable = CreateLayoutGrid\r\n\r\n setUrlQuery = UrlQueryParam.setUrlQuery\r\n\r\n getUrlQuery = UrlQueryParam.getUrlQuery\r\n}\r\n\r\nconst DinoTableGrid = new DinoTableGridBase()\r\nexport default DinoTableGrid\r\n"],"names":["DinoTableGrid","_createClass","DinoTableGridBase","_classCallCheck","_defineProperty","defaultPagination","CreateLayoutGrid","this","UrlQueryParam","setUrlQuery","getUrlQuery"],"mappings":"6OAE6C,IAYvCA,EAAgB,IAVCC,EAAA,SAAAC,IAAAC,OAAAD,GAAAE,2BACDC,GAAiBD,qBAEvBE,GAAgBF,EAAAG,KAAA,cAEhBC,EAAcC,aAAWL,EAAAG,KAAA,cAEzBC,EAAcE,YAAW"}
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as r,classCallCheck as t,callSuper as i,defineProperty as a,toConsumableArray as l,objectSpread2 as n,objectWithoutProperties as u,createForOfIteratorHelper as o}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{Component as s}from"react";import{ESearchMatch as c,EMenuValidate as f}from"./types.js";var v=["field"],d={root:"FilterPanel-root",list:"FilterPanel-list",item:"FilterPanel-item"},h=function(){function d(){var e;t(this,d);for(var r=arguments.length,s=new Array(r),h=0;h<r;h++)s[h]=arguments[h];return e=i(this,d,[].concat(s)),a(e,"mergeFilter",(function(e,r){var t,i,a=null!==(t=null==r?void 0:r.filter)&&void 0!==t?t:{};if(null!=e&&e.filter){var n=function(){var r,t,i=u,n=null!==(r=a[i])&&void 0!==r?r:[],o=null!==(t=null==e?void 0:e.filter[i])&&void 0!==t?t:[],s=new Set(n.map((function(e){return e.value}))),c=[].concat(l(n),l(o.filter((function(e){return!s.has(e.value)}))));c.length>0&&(a[i]=c)};for(var u in null==e?void 0:e.filter)n()}return{filter:Object.keys(a).length?a:{},details:null!==(i=null==r?void 0:r.details)&&void 0!==i?i:null==e?void 0:e.details}})),a(e,"addQuickSearch",(function(e,r,t){var i,a;if(!t||!r)return{isChanged:!1,filterState:e};var l=n({},e),u=new Set(null!==(i=null===(a=l.quickSearch)||void 0===a?void 0:a.values)&&void 0!==i?i:[]),o=!u.has(t);return u.add(t),l.quickSearch={fields:r.fields,values:Array.from(u)},{isChanged:o,filterState:l}})),a(e,"removeQuickSearch",(function(e){var r=n({},e);return"quickSearch"in r&&delete r.quickSearch,{isChanged:!!e.quickSearch,filterState:r}})),a(e,"patchFilterWithKey",(function(e,r){var t,i=r.field,a=u(r,v),o=n({},e.filter||{}),s=null!==(t=o[i])&&void 0!==t?t:[],c=!s.map((function(e){return e.value})).includes(a.value);return c&&(s=[].concat(l(s),[a])),o[i]=s,{isChanged:c,filterState:n(n({},e),{},{filter:o})}})),a(e,"deleteFilterWithKey",(function(e,r){var t=n({},e.filter||{}),i=r.field in t;return i&&delete t[r.field],{isChanged:i,filterState:n(n({},e),{},{filter:t})}})),a(e,"isFilterEmpty",(function(e){var r,t=Object.values(null!==(r=e.filter)&&void 0!==r?r:{});return t.length<1||t.every((function(e){return!!e&&e.length<1}))})),a(e,"isYoutubeLink",(function(e){return/^https?:\/\/(www\.)?(youtube\.com|youtu\.be)\//.test(e)})),a(e,"isGenericLink",(function(e){return/^https?:\/\/[^ ]+$/.test(e)})),a(e,"isGuid",(function(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)})),a(e,"getFieldsMatches",(function(r,t,i){var a=t.trim().toLowerCase();if(!a)return r;var l={};for(var n in r){var u=n,s=r[u];if(s){var f,v=Array.isArray(s.searchMatches)?s.searchMatches:s.searchMatches?[s.searchMatches]:[],d=!1,h=o(v);try{for(h.s();!(f=h.n()).done;){var k=f.value;switch(k.rule){case c.AlwaysVisible:d=!0;break;case c.MatchOnly:"function"==typeof k.match&&k.match(a)&&(d=!0);break;case c.LinkYoutube:e.isYoutubeLink(a)&&(d=!0);break;case c.Link:e.isGenericLink(a)&&(d=!0);break;case c.Guid:e.isGuid(a)&&(d=!0)}if(d)break}}catch(e){h.e(e)}finally{h.f()}d&&(l[u]=s)}}return 0===Object.keys(l).length?i?r:{}:l})),a(e,"validated",(function(r,t,i){var a,l=r.trim().toLowerCase();if(!l)return{error:!0,message:"The ".concat(t.toString()," is required ")};var n,u=Array.isArray(null==i?void 0:i.validate)?null!==(a=null==i?void 0:i.validate)&&void 0!==a?a:[]:null!=i&&i.validate?[i.validate]:[],s={error:!1},c=o(u);try{for(c.s();!(n=c.n()).done;){var v=n.value;switch(v.rule){case f.LinkYoutube:var d;if(!e.isYoutubeLink(l))s.error=!0,s.message="The ".concat(null!==(d=null==i?void 0:i.label)&&void 0!==d?d:t.toString()," must be a valid YouTube link");break;case f.Link:var h;if(!e.isGenericLink(l))s.error=!0,s.message="The ".concat(null!==(h=null==i?void 0:i.label)&&void 0!==h?h:t.toString()," must be a valid URL link");break;case f.Custom:var k;if("function"==typeof v.custom&&!v.custom(l))s.error=!0,s.message="The ".concat(null!==(k=null==i?void 0:i.label)&&void 0!==k?k:t.toString()," is invalid")}if(s.error)break}}catch(e){c.e(e)}finally{c.f()}return s})),e}return e(d,s),r(d)}();export{h as default,d as filterPanelClasses};
1
+ import{inherits as e,createClass as r,classCallCheck as t,callSuper as i,defineProperty as a,toConsumableArray as l,objectSpread2 as n,objectWithoutProperties as u,createForOfIteratorHelper as o}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{Component as s}from"react";import{ESearchMatch as c,EMenuValidate as f}from"./types.js";var v=["field"],d={root:"FilterPanel-root",list:"FilterPanel-list",item:"FilterPanel-item"},h=function(){function d(){var e;t(this,d);for(var r=arguments.length,s=new Array(r),h=0;h<r;h++)s[h]=arguments[h];return e=i(this,d,[].concat(s)),a(e,"mergeFilter",function(e,r){var t,i,a=null!==(t=null==r?void 0:r.filter)&&void 0!==t?t:{};if(null!=e&&e.filter){var n=function(){var r,t,i=u,n=null!==(r=a[i])&&void 0!==r?r:[],o=null!==(t=null==e?void 0:e.filter[i])&&void 0!==t?t:[],s=new Set(n.map(function(e){return e.value})),c=[].concat(l(n),l(o.filter(function(e){return!s.has(e.value)})));c.length>0&&(a[i]=c)};for(var u in null==e?void 0:e.filter)n()}return{filter:Object.keys(a).length?a:{},details:null!==(i=null==r?void 0:r.details)&&void 0!==i?i:null==e?void 0:e.details}}),a(e,"addQuickSearch",function(e,r,t){var i,a;if(!t||!r)return{isChanged:!1,filterState:e};var l=n({},e),u=new Set(null!==(i=null===(a=l.quickSearch)||void 0===a?void 0:a.values)&&void 0!==i?i:[]),o=!u.has(t);return u.add(t),l.quickSearch={fields:r.fields,values:Array.from(u)},{isChanged:o,filterState:l}}),a(e,"removeQuickSearch",function(e){var r=n({},e);return"quickSearch"in r&&delete r.quickSearch,{isChanged:!!e.quickSearch,filterState:r}}),a(e,"patchFilterWithKey",function(e,r){var t,i=r.field,a=u(r,v),o=n({},e.filter||{}),s=null!==(t=o[i])&&void 0!==t?t:[],c=!s.map(function(e){return e.value}).includes(a.value);return c&&(s=[].concat(l(s),[a])),o[i]=s,{isChanged:c,filterState:n(n({},e),{},{filter:o})}}),a(e,"deleteFilterWithKey",function(e,r){var t=n({},e.filter||{}),i=r.field in t;return i&&delete t[r.field],{isChanged:i,filterState:n(n({},e),{},{filter:t})}}),a(e,"isFilterEmpty",function(e){var r,t=Object.values(null!==(r=e.filter)&&void 0!==r?r:{});return t.length<1||t.every(function(e){return!!e&&e.length<1})}),a(e,"isYoutubeLink",function(e){return/^https?:\/\/(www\.)?(youtube\.com|youtu\.be)\//.test(e)}),a(e,"isGenericLink",function(e){return/^https?:\/\/[^ ]+$/.test(e)}),a(e,"isGuid",function(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)}),a(e,"getFieldsMatches",function(r,t,i){var a=t.trim().toLowerCase();if(!a)return r;var l={};for(var n in r){var u=n,s=r[u];if(s){var f,v=Array.isArray(s.searchMatches)?s.searchMatches:s.searchMatches?[s.searchMatches]:[],d=!1,h=o(v);try{for(h.s();!(f=h.n()).done;){var k=f.value;switch(k.rule){case c.AlwaysVisible:d=!0;break;case c.MatchOnly:"function"==typeof k.match&&k.match(a)&&(d=!0);break;case c.LinkYoutube:e.isYoutubeLink(a)&&(d=!0);break;case c.Link:e.isGenericLink(a)&&(d=!0);break;case c.Guid:e.isGuid(a)&&(d=!0)}if(d)break}}catch(e){h.e(e)}finally{h.f()}d&&(l[u]=s)}}return 0===Object.keys(l).length?i?r:{}:l}),a(e,"validated",function(r,t,i){var a,l=r.trim().toLowerCase();if(!l)return{error:!0,message:"The ".concat(t.toString()," is required ")};var n,u=Array.isArray(null==i?void 0:i.validate)?null!==(a=null==i?void 0:i.validate)&&void 0!==a?a:[]:null!=i&&i.validate?[i.validate]:[],s={error:!1},c=o(u);try{for(c.s();!(n=c.n()).done;){var v=n.value;switch(v.rule){case f.LinkYoutube:var d;if(!e.isYoutubeLink(l))s.error=!0,s.message="The ".concat(null!==(d=null==i?void 0:i.label)&&void 0!==d?d:t.toString()," must be a valid YouTube link");break;case f.Link:var h;if(!e.isGenericLink(l))s.error=!0,s.message="The ".concat(null!==(h=null==i?void 0:i.label)&&void 0!==h?h:t.toString()," must be a valid URL link");break;case f.Custom:var k;if("function"==typeof v.custom&&!v.custom(l))s.error=!0,s.message="The ".concat(null!==(k=null==i?void 0:i.label)&&void 0!==k?k:t.toString()," is invalid")}if(s.error)break}}catch(e){c.e(e)}finally{c.f()}return s}),e}return e(d,s),r(d)}();export{h as default,d as filterPanelClasses};
2
2
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sources":["../../../../src/table-grid/filter-bar/base.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { IFilterItemModel, IFilterModel, IFilterState, IQuickSearchDef } from './types'\r\nimport { EMenuValidate, ESearchMatch, IFilterField, IFilterFields, IFilterItemChangeModel } from './types'\r\n\r\nexport const filterPanelClasses = {\r\n root: 'FilterPanel-root',\r\n list: 'FilterPanel-list',\r\n item: 'FilterPanel-item'\r\n}\r\n\r\nexport interface IFilterChange<T> {\r\n isChanged: boolean\r\n filterState: IFilterState<T>\r\n}\r\n\r\nexport default class FilterBarBase<P, S, T = any> extends Component<P, S> {\r\n //#region Filter\r\n mergeFilter = (f1?: IFilterState<T>, f2?: IFilterState<T>): IFilterState<T> => {\r\n const mergedFilter: IFilterModel<T> = f2?.filter ?? {}\r\n\r\n if (f1?.filter) {\r\n for (const key in f1?.filter) {\r\n const fieldKey = key as keyof T\r\n const existingItems = mergedFilter[fieldKey] ?? []\r\n const newItems = f1?.filter[fieldKey] ?? []\r\n\r\n const existingValues = new Set(existingItems.map((item) => item.value))\r\n\r\n const mergedItems = [...existingItems, ...newItems.filter((item) => !existingValues.has(item.value))]\r\n\r\n if (mergedItems.length > 0) {\r\n mergedFilter[fieldKey] = mergedItems\r\n }\r\n }\r\n }\r\n\r\n const result: IFilterState<T> = {\r\n filter: Object.keys(mergedFilter).length ? mergedFilter : {},\r\n details: f2?.details ?? f1?.details\r\n }\r\n\r\n return result\r\n }\r\n\r\n addQuickSearch = (filterState: IFilterState<T>, def?: IQuickSearchDef<T>, value?: string): IFilterChange<T> => {\r\n if (!value || !def) return { isChanged: false, filterState }\r\n const clonedFilter: IFilterState<T> = { ...filterState }\r\n const tempSet = new Set<string>(clonedFilter.quickSearch?.values ?? [])\r\n const isChanged = !tempSet.has(value)\r\n tempSet.add(value)\r\n clonedFilter.quickSearch = { fields: def.fields, values: Array.from(tempSet) }\r\n return { isChanged, filterState: clonedFilter }\r\n }\r\n\r\n removeQuickSearch = (filterState: IFilterState<T>): IFilterChange<T> => {\r\n const obj = { ...filterState }\r\n if ('quickSearch' in obj) delete obj.quickSearch\r\n return { isChanged: !!filterState.quickSearch, filterState: obj }\r\n }\r\n\r\n patchFilterWithKey = (filterState: IFilterState<T>, data: IFilterItemChangeModel<T>): IFilterChange<T> => {\r\n const { field, ...item } = data\r\n const clonedFilter: IFilterModel<T> = { ...(filterState.filter || {}) }\r\n let filter = clonedFilter[field] ?? []\r\n const isChanged = !filter.map((x) => x.value).includes(item.value)\r\n if (isChanged) filter = [...filter, item]\r\n clonedFilter[field] = filter\r\n return { isChanged, filterState: { ...filterState, filter: clonedFilter } }\r\n }\r\n\r\n deleteFilterWithKey = (filterState: IFilterState<T>, data: IFilterItemChangeModel<T>): IFilterChange<T> => {\r\n const clonedFilter: IFilterModel<T> = { ...(filterState.filter || {}) }\r\n const isChanged = data.field in clonedFilter\r\n if (isChanged) delete clonedFilter[data.field]\r\n return { isChanged, filterState: { ...filterState, filter: clonedFilter } }\r\n }\r\n\r\n isFilterEmpty = (filterState: IFilterState<T>) => {\r\n const values = Object.values(filterState.filter ?? {}) as IFilterItemModel[][]\r\n return values.length < 1 || values.every((x) => !!x && x.length < 1)\r\n }\r\n //#endregion\r\n\r\n //#region Field\r\n isYoutubeLink = (val: string) => /^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)\\//.test(val)\r\n\r\n isGenericLink = (val: string) => /^https?:\\/\\/[^ ]+$/.test(val)\r\n\r\n isGuid = (val: string) => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(val)\r\n\r\n getFieldsMatches = (fields: IFilterFields<T>, keyword: string, showAll?: boolean): IFilterFields<T> => {\r\n const trimmed = keyword.trim().toLowerCase()\r\n if (!trimmed) return fields\r\n\r\n const matched: IFilterFields<T> = {}\r\n\r\n for (const key in fields) {\r\n const field = key as keyof IFilterFields<T>\r\n const config = fields[field]\r\n if (!config) continue\r\n\r\n const matches = Array.isArray(config.searchMatches) ? config.searchMatches : config.searchMatches ? [config.searchMatches] : []\r\n\r\n let visible = false\r\n\r\n for (const matchObj of matches) {\r\n switch (matchObj.rule) {\r\n case ESearchMatch.AlwaysVisible:\r\n visible = true\r\n break\r\n case ESearchMatch.MatchOnly:\r\n if (typeof matchObj.match === 'function') {\r\n if (matchObj.match(trimmed)) visible = true\r\n }\r\n break\r\n case ESearchMatch.LinkYoutube:\r\n if (this.isYoutubeLink(trimmed)) visible = true\r\n break\r\n case ESearchMatch.Link:\r\n if (this.isGenericLink(trimmed)) visible = true\r\n break\r\n case ESearchMatch.Guid:\r\n if (this.isGuid(trimmed)) visible = true\r\n break\r\n default:\r\n break\r\n }\r\n\r\n if (visible) break\r\n }\r\n\r\n if (visible) matched[field] = config\r\n }\r\n return Object.keys(matched).length === 0 ? (showAll ? fields : {}) : matched\r\n }\r\n\r\n validated = (value: string, fieldKey: keyof IFilterModel<T>, filterField?: IFilterField): { error: boolean; message?: string } => {\r\n const trimmed = value.trim().toLowerCase()\r\n if (!trimmed) return { error: true, message: `The ${fieldKey.toString()} is required ` }\r\n const validate = Array.isArray(filterField?.validate) ? filterField?.validate ?? [] : filterField?.validate ? [filterField.validate] : []\r\n const obj: { error: boolean; message?: string } = { error: false }\r\n for (const validateObj of validate) {\r\n switch (validateObj.rule) {\r\n case EMenuValidate.LinkYoutube:\r\n if (!this.isYoutubeLink(trimmed)) {\r\n obj.error = true\r\n obj.message = `The ${filterField?.label ?? fieldKey.toString()} must be a valid YouTube link`\r\n }\r\n break\r\n\r\n case EMenuValidate.Link:\r\n if (!this.isGenericLink(trimmed)) {\r\n obj.error = true\r\n obj.message = `The ${filterField?.label ?? fieldKey.toString()} must be a valid URL link`\r\n }\r\n break\r\n\r\n case EMenuValidate.Custom:\r\n if (typeof validateObj.custom === 'function' && !validateObj.custom(trimmed)) {\r\n obj.error = true\r\n obj.message = `The ${filterField?.label ?? fieldKey.toString()} is invalid`\r\n }\r\n break\r\n default:\r\n break\r\n }\r\n if (obj.error) break\r\n }\r\n return obj\r\n }\r\n //#endregion\r\n\r\n //#region Sort\r\n // getSortFields = (fields: IFilterFields<T>) => {\r\n // const keys = Object.keys(fields) as (keyof IFilterFields<T>)[]\r\n // return keys.reduce<IFilterFields<T>>((a, b) => {\r\n // const item = fields[b]\r\n // if (item?.sortable !== false) {\r\n // a[b] = item\r\n // }\r\n // return a\r\n // }, {})\r\n // }\r\n //#endregion\r\n}\r\n"],"names":["filterPanelClasses","root","list","item","FilterBarBase","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","f1","f2","_f2$filter","_f2$details","mergedFilter","filter","_loop","_mergedFilter$fieldKe","_f1$filter$fieldKey","fieldKey","key","existingItems","newItems","existingValues","Set","map","value","mergedItems","_toConsumableArray","has","Object","keys","details","filterState","def","_clonedFilter$quickSe","_clonedFilter$quickSe2","isChanged","clonedFilter","_objectSpread","tempSet","quickSearch","values","add","fields","from","obj","data","_clonedFilter$field","field","_objectWithoutProperties","_excluded","x","includes","_filterState$filter","every","val","test","keyword","showAll","trimmed","trim","toLowerCase","matched","config","_step","matches","isArray","searchMatches","visible","_iterator","_createForOfIteratorHelper","s","n","done","matchObj","rule","ESearchMatch","AlwaysVisible","MatchOnly","match","LinkYoutube","isYoutubeLink","Link","isGenericLink","Guid","isGuid","err","e","f","filterField","_filterField$validate","error","message","toString","_step2","validate","_iterator2","validateObj","EMenuValidate","_filterField$label","label","_filterField$label2","Custom","_filterField$label3","custom","_inherits","Component","_createClass"],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sources":["../../../../src/table-grid/filter-bar/base.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { IFilterItemModel, IFilterModel, IFilterState, IQuickSearchDef } from './types'\r\nimport { EMenuValidate, ESearchMatch, IFilterField, IFilterFields, IFilterItemChangeModel } from './types'\r\n\r\nexport const filterPanelClasses = {\r\n root: 'FilterPanel-root',\r\n list: 'FilterPanel-list',\r\n item: 'FilterPanel-item'\r\n}\r\n\r\nexport interface IFilterChange<T> {\r\n isChanged: boolean\r\n filterState: IFilterState<T>\r\n}\r\n\r\nexport default class FilterBarBase<P, S, T = any> extends Component<P, S> {\r\n //#region Filter\r\n mergeFilter = (f1?: IFilterState<T>, f2?: IFilterState<T>): IFilterState<T> => {\r\n const mergedFilter: IFilterModel<T> = f2?.filter ?? {}\r\n\r\n if (f1?.filter) {\r\n for (const key in f1?.filter) {\r\n const fieldKey = key as keyof T\r\n const existingItems = mergedFilter[fieldKey] ?? []\r\n const newItems = f1?.filter[fieldKey] ?? []\r\n\r\n const existingValues = new Set(existingItems.map((item) => item.value))\r\n\r\n const mergedItems = [...existingItems, ...newItems.filter((item) => !existingValues.has(item.value))]\r\n\r\n if (mergedItems.length > 0) {\r\n mergedFilter[fieldKey] = mergedItems\r\n }\r\n }\r\n }\r\n\r\n const result: IFilterState<T> = {\r\n filter: Object.keys(mergedFilter).length ? mergedFilter : {},\r\n details: f2?.details ?? f1?.details\r\n }\r\n\r\n return result\r\n }\r\n\r\n addQuickSearch = (filterState: IFilterState<T>, def?: IQuickSearchDef<T>, value?: string): IFilterChange<T> => {\r\n if (!value || !def) return { isChanged: false, filterState }\r\n const clonedFilter: IFilterState<T> = { ...filterState }\r\n const tempSet = new Set<string>(clonedFilter.quickSearch?.values ?? [])\r\n const isChanged = !tempSet.has(value)\r\n tempSet.add(value)\r\n clonedFilter.quickSearch = { fields: def.fields, values: Array.from(tempSet) }\r\n return { isChanged, filterState: clonedFilter }\r\n }\r\n\r\n removeQuickSearch = (filterState: IFilterState<T>): IFilterChange<T> => {\r\n const obj = { ...filterState }\r\n if ('quickSearch' in obj) delete obj.quickSearch\r\n return { isChanged: !!filterState.quickSearch, filterState: obj }\r\n }\r\n\r\n patchFilterWithKey = (filterState: IFilterState<T>, data: IFilterItemChangeModel<T>): IFilterChange<T> => {\r\n const { field, ...item } = data\r\n const clonedFilter: IFilterModel<T> = { ...(filterState.filter || {}) }\r\n let filter = clonedFilter[field] ?? []\r\n const isChanged = !filter.map((x) => x.value).includes(item.value)\r\n if (isChanged) filter = [...filter, item]\r\n clonedFilter[field] = filter\r\n return { isChanged, filterState: { ...filterState, filter: clonedFilter } }\r\n }\r\n\r\n deleteFilterWithKey = (filterState: IFilterState<T>, data: IFilterItemChangeModel<T>): IFilterChange<T> => {\r\n const clonedFilter: IFilterModel<T> = { ...(filterState.filter || {}) }\r\n const isChanged = data.field in clonedFilter\r\n if (isChanged) delete clonedFilter[data.field]\r\n return { isChanged, filterState: { ...filterState, filter: clonedFilter } }\r\n }\r\n\r\n isFilterEmpty = (filterState: IFilterState<T>) => {\r\n const values = Object.values(filterState.filter ?? {}) as IFilterItemModel[][]\r\n return values.length < 1 || values.every((x) => !!x && x.length < 1)\r\n }\r\n //#endregion\r\n\r\n //#region Field\r\n isYoutubeLink = (val: string) => /^https?:\\/\\/(www\\.)?(youtube\\.com|youtu\\.be)\\//.test(val)\r\n\r\n isGenericLink = (val: string) => /^https?:\\/\\/[^ ]+$/.test(val)\r\n\r\n isGuid = (val: string) => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(val)\r\n\r\n getFieldsMatches = (fields: IFilterFields<T>, keyword: string, showAll?: boolean): IFilterFields<T> => {\r\n const trimmed = keyword.trim().toLowerCase()\r\n if (!trimmed) return fields\r\n\r\n const matched: IFilterFields<T> = {}\r\n\r\n for (const key in fields) {\r\n const field = key as keyof IFilterFields<T>\r\n const config = fields[field]\r\n if (!config) continue\r\n\r\n const matches = Array.isArray(config.searchMatches) ? config.searchMatches : config.searchMatches ? [config.searchMatches] : []\r\n\r\n let visible = false\r\n\r\n for (const matchObj of matches) {\r\n switch (matchObj.rule) {\r\n case ESearchMatch.AlwaysVisible:\r\n visible = true\r\n break\r\n case ESearchMatch.MatchOnly:\r\n if (typeof matchObj.match === 'function') {\r\n if (matchObj.match(trimmed)) visible = true\r\n }\r\n break\r\n case ESearchMatch.LinkYoutube:\r\n if (this.isYoutubeLink(trimmed)) visible = true\r\n break\r\n case ESearchMatch.Link:\r\n if (this.isGenericLink(trimmed)) visible = true\r\n break\r\n case ESearchMatch.Guid:\r\n if (this.isGuid(trimmed)) visible = true\r\n break\r\n default:\r\n break\r\n }\r\n\r\n if (visible) break\r\n }\r\n\r\n if (visible) matched[field] = config\r\n }\r\n return Object.keys(matched).length === 0 ? (showAll ? fields : {}) : matched\r\n }\r\n\r\n validated = (value: string, fieldKey: keyof IFilterModel<T>, filterField?: IFilterField): { error: boolean; message?: string } => {\r\n const trimmed = value.trim().toLowerCase()\r\n if (!trimmed) return { error: true, message: `The ${fieldKey.toString()} is required ` }\r\n const validate = Array.isArray(filterField?.validate) ? filterField?.validate ?? [] : filterField?.validate ? [filterField.validate] : []\r\n const obj: { error: boolean; message?: string } = { error: false }\r\n for (const validateObj of validate) {\r\n switch (validateObj.rule) {\r\n case EMenuValidate.LinkYoutube:\r\n if (!this.isYoutubeLink(trimmed)) {\r\n obj.error = true\r\n obj.message = `The ${filterField?.label ?? fieldKey.toString()} must be a valid YouTube link`\r\n }\r\n break\r\n\r\n case EMenuValidate.Link:\r\n if (!this.isGenericLink(trimmed)) {\r\n obj.error = true\r\n obj.message = `The ${filterField?.label ?? fieldKey.toString()} must be a valid URL link`\r\n }\r\n break\r\n\r\n case EMenuValidate.Custom:\r\n if (typeof validateObj.custom === 'function' && !validateObj.custom(trimmed)) {\r\n obj.error = true\r\n obj.message = `The ${filterField?.label ?? fieldKey.toString()} is invalid`\r\n }\r\n break\r\n default:\r\n break\r\n }\r\n if (obj.error) break\r\n }\r\n return obj\r\n }\r\n //#endregion\r\n\r\n //#region Sort\r\n // getSortFields = (fields: IFilterFields<T>) => {\r\n // const keys = Object.keys(fields) as (keyof IFilterFields<T>)[]\r\n // return keys.reduce<IFilterFields<T>>((a, b) => {\r\n // const item = fields[b]\r\n // if (item?.sortable !== false) {\r\n // a[b] = item\r\n // }\r\n // return a\r\n // }, {})\r\n // }\r\n //#endregion\r\n}\r\n"],"names":["filterPanelClasses","root","list","item","FilterBarBase","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","f1","f2","_f2$filter","_f2$details","mergedFilter","filter","_loop","_mergedFilter$fieldKe","_f1$filter$fieldKey","fieldKey","key","existingItems","newItems","existingValues","Set","map","value","mergedItems","_toConsumableArray","has","Object","keys","details","filterState","def","_clonedFilter$quickSe","_clonedFilter$quickSe2","isChanged","clonedFilter","_objectSpread","tempSet","quickSearch","values","add","fields","from","obj","data","_clonedFilter$field","field","_objectWithoutProperties","_excluded","x","includes","_filterState$filter","every","val","test","keyword","showAll","trimmed","trim","toLowerCase","matched","config","_step","matches","isArray","searchMatches","visible","_iterator","_createForOfIteratorHelper","s","n","done","matchObj","rule","ESearchMatch","AlwaysVisible","MatchOnly","match","LinkYoutube","isYoutubeLink","Link","isGenericLink","Guid","isGuid","err","e","f","filterField","_filterField$validate","error","message","toString","_step2","validate","_iterator2","validateObj","EMenuValidate","_filterField$label","label","_filterField$label2","Custom","_filterField$label3","custom","_inherits","Component","_createClass"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as t,objectSpread2 as r,classCallCheck as i,callSuper as a,defineProperty as l}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as n,jsxs as o}from"react/jsx-runtime";import{styled as s,Box as f,IconButton as u,InputBase as d}from"@mui/material";import c from"@mui/icons-material/FilterList";import h from"@mui/material/ClickAwayListener";import{ButtonClear as p,FilterNotes as S}from"./ui.units.js";import m from"./base.js";import v from"./create.filtered.js";import g from"./create.filter-panel.js";function k(s){var k=g(s),w=v(s);return function(){function v(e){var t;return i(this,v),t=a(this,v,[e]),l(t,"defaultState",{keyword:"",panelState:{anchorEl:null}}),l(t,"filterStateStore",{filter:{}}),l(t,"setFilterState",(function(e){t.props.value||(t.filterStateStore=e),t.props.onChange&&t.props.onChange(e)})),l(t,"refFilterButton",null),l(t,"refSortButton",null),l(t,"refInput",null),l(t,"refBeforeInput",null),l(t,"renderTextField",(function(){return o(f,{component:"label",htmlFor:t.configs.id,sx:{flex:1,display:"flex",alignItems:"flex-end"},children:[n(f,{ref:function(e){return t.refBeforeInput=e},sx:{height:"100%"}}),n(d,{id:t.configs.id,placeholder:t.configs.placeholder,fullWidth:!0,autoComplete:"off",inputRef:function(e){return t.refInput=e},onChange:function(e){return t.setState({keyword:e.target.value})},value:t.state.keyword,onFocus:function(){return t.showPanel("searchInput")},onKeyDown:t.handleKeyDown})]})})),l(t,"handleKeyDown",(function(e){var r=e.keyCode;if(13===r){if(!t.state.keyword)return;var i,a=t.addQuickSearch(t.filterState,s.quickSearch,t.state.keyword);if(a.filterState.details="add",a.isChanged)null===(i=t.refInput)||void 0===i||i.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState)}else if(27===r){var l;null===(l=t.refInput)||void 0===l||l.blur(),t.setState(t.defaultState)}})),l(t,"handleAdd",(function(e,r){var i,a={isChanged:!1,filterState:t.filterState};("field"===e&&r?a=t.patchFilterWithKey(t.filterState,r):"quickSearch"===e&&(a=t.addQuickSearch(t.filterState,s.quickSearch,t.state.keyword)),a.filterState.details="add",a.isChanged)&&(null===(i=t.refInput)||void 0===i||i.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState))})),l(t,"handleRemove",(function(e,r){var i,a={isChanged:!1,filterState:t.filterState};("field"===e&&r?a=t.deleteFilterWithKey(t.filterState,r):"quickSearch"===e&&(a=t.removeQuickSearch(t.filterState)),a.filterState.details="remove",a.isChanged)&&(null===(i=t.refInput)||void 0===i||i.blur(),t.setFilterState(a.filterState),t.forceUpdate())})),l(t,"handleClear",(function(){t.setFilterState({filter:{},details:"remove"}),t.setState(t.defaultState)})),l(t,"showPanel",(function(e){var r=null;switch(e){case"searchInput":r=t.refBeforeInput;break;case"filterButton":r=t.refFilterButton}t.setState({panelState:{anchorEl:r,reason:e}})})),l(t,"closePanel",(function(){return t.setState({panelState:{anchorEl:null}})})),t.state=t.defaultState,t}return e(v,m),t(v,[{key:"filterState",get:function(){var e;return null!==(e=this.props.value)&&void 0!==e?e:this.filterStateStore}},{key:"configs",get:function(){var e,t,r,i;return{id:null!==(e=null!==(t=this.props.id)&&void 0!==t?t:s.id)&&void 0!==e?e:(new Date).getTime().toString(),placeholder:null!==(r=null!==(i=this.props.placeholder)&&void 0!==i?i:s.placeholder)&&void 0!==r?r:"Filter",notes:s.notes}}},{key:"render",value:function(){var e=this;return n(h,{onClickAway:this.closePanel,children:o(y,{children:[n(u,{ref:function(t){return e.refFilterButton=t},onClick:function(){return e.showPanel("filterButton")},children:n(c,{})}),o(C,{children:[n(w,{filterState:this.filterState,onRemove:this.handleRemove}),this.renderTextField()]}),n(p,{visibled:!this.isFilterEmpty(this.filterState),onClick:this.handleClear}),this.configs.notes&&n(S,r({},this.configs.notes)),n(k,r(r({},this.state.panelState),{},{keyword:this.state.keyword,onSubmit:this.handleAdd,onClose:this.closePanel}))]})})}}])}()}var y=s(f)({display:"flex",gap:"8px",width:"100%",borderRadius:"6px",transition:"all linear 0.2s",padding:"2px",backgroundColor:"#fafafa","&:hover":{backgroundColor:"#ededed"}}),C=s(f)({flex:1,minHeight:"40px",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"6px"});export{k as default};
1
+ import{inherits as e,createClass as t,objectSpread2 as r,classCallCheck as i,callSuper as a,defineProperty as l}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as n,jsxs as o}from"react/jsx-runtime";import{styled as s,Box as f,IconButton as u,InputBase as d}from"@mui/material";import c from"@mui/icons-material/FilterList";import h from"@mui/material/ClickAwayListener";import{ButtonClear as p,FilterNotes as S}from"./ui.units.js";import m from"./base.js";import v from"./create.filtered.js";import g from"./create.filter-panel.js";function k(s){var k=g(s),w=v(s);return function(){function v(e){var t;return i(this,v),t=a(this,v,[e]),l(t,"defaultState",{keyword:"",panelState:{anchorEl:null}}),l(t,"filterStateStore",{filter:{}}),l(t,"setFilterState",function(e){t.props.value||(t.filterStateStore=e),t.props.onChange&&t.props.onChange(e)}),l(t,"refFilterButton",null),l(t,"refSortButton",null),l(t,"refInput",null),l(t,"refBeforeInput",null),l(t,"renderTextField",function(){return o(f,{component:"label",htmlFor:t.configs.id,sx:{flex:1,display:"flex",alignItems:"flex-end"},children:[n(f,{ref:function(e){return t.refBeforeInput=e},sx:{height:"100%"}}),n(d,{id:t.configs.id,placeholder:t.configs.placeholder,fullWidth:!0,autoComplete:"off",inputRef:function(e){return t.refInput=e},onChange:function(e){return t.setState({keyword:e.target.value})},value:t.state.keyword,onFocus:function(){return t.showPanel("searchInput")},onKeyDown:t.handleKeyDown})]})}),l(t,"handleKeyDown",function(e){var r=e.keyCode;if(13===r){if(!t.state.keyword)return;var i,a=t.addQuickSearch(t.filterState,s.quickSearch,t.state.keyword);if(a.filterState.details="add",a.isChanged)null===(i=t.refInput)||void 0===i||i.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState)}else if(27===r){var l;null===(l=t.refInput)||void 0===l||l.blur(),t.setState(t.defaultState)}}),l(t,"handleAdd",function(e,r){var i,a={isChanged:!1,filterState:t.filterState};("field"===e&&r?a=t.patchFilterWithKey(t.filterState,r):"quickSearch"===e&&(a=t.addQuickSearch(t.filterState,s.quickSearch,t.state.keyword)),a.filterState.details="add",a.isChanged)&&(null===(i=t.refInput)||void 0===i||i.blur(),t.setFilterState(a.filterState),t.setState(t.defaultState))}),l(t,"handleRemove",function(e,r){var i,a={isChanged:!1,filterState:t.filterState};("field"===e&&r?a=t.deleteFilterWithKey(t.filterState,r):"quickSearch"===e&&(a=t.removeQuickSearch(t.filterState)),a.filterState.details="remove",a.isChanged)&&(null===(i=t.refInput)||void 0===i||i.blur(),t.setFilterState(a.filterState),t.forceUpdate())}),l(t,"handleClear",function(){t.setFilterState({filter:{},details:"remove"}),t.setState(t.defaultState)}),l(t,"showPanel",function(e){var r=null;switch(e){case"searchInput":r=t.refBeforeInput;break;case"filterButton":r=t.refFilterButton}t.setState({panelState:{anchorEl:r,reason:e}})}),l(t,"closePanel",function(){return t.setState({panelState:{anchorEl:null}})}),t.state=t.defaultState,t}return e(v,m),t(v,[{key:"filterState",get:function(){var e;return null!==(e=this.props.value)&&void 0!==e?e:this.filterStateStore}},{key:"configs",get:function(){var e,t,r,i;return{id:null!==(e=null!==(t=this.props.id)&&void 0!==t?t:s.id)&&void 0!==e?e:(new Date).getTime().toString(),placeholder:null!==(r=null!==(i=this.props.placeholder)&&void 0!==i?i:s.placeholder)&&void 0!==r?r:"Filter",notes:s.notes}}},{key:"render",value:function(){var e=this;return n(h,{onClickAway:this.closePanel,children:o(y,{children:[n(u,{ref:function(t){return e.refFilterButton=t},onClick:function(){return e.showPanel("filterButton")},children:n(c,{})}),o(C,{children:[n(w,{filterState:this.filterState,onRemove:this.handleRemove}),this.renderTextField()]}),n(p,{visibled:!this.isFilterEmpty(this.filterState),onClick:this.handleClear}),this.configs.notes&&n(S,r({},this.configs.notes)),n(k,r(r({},this.state.panelState),{},{keyword:this.state.keyword,onSubmit:this.handleAdd,onClose:this.closePanel}))]})})}}])}()}var y=s(f)({display:"flex",gap:"8px",width:"100%",borderRadius:"6px",transition:"all linear 0.2s",padding:"2px",backgroundColor:"#fafafa","&:hover":{backgroundColor:"#ededed"}}),C=s(f)({flex:1,minHeight:"40px",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"6px"});export{k as default};
2
2
  //# sourceMappingURL=create.filter-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.filter-bar.js","sources":["../../../../src/table-grid/filter-bar/create.filter-bar.tsx"],"sourcesContent":["import React, { ComponentType } from 'react'\r\nimport { Box, IconButton, InputBase, styled } from '@mui/material'\r\nimport FilterListIcon from '@mui/icons-material/FilterList'\r\nimport ClickAwayListener from '@mui/material/ClickAwayListener'\r\nimport { ButtonClear, FilterNotes } from './ui.units'\r\nimport { IFilterReason, IFilterState, IFilterBarConfigs, IFilterBarProps, IFilterBarState, IFilterSubmitFunc } from './types'\r\nimport FilterBarBase, { IFilterChange } from './base'\r\nimport CreateFiltered from './create.filtered'\r\nimport CreateFilterPanel from './create.filter-panel'\r\n\r\nfunction CreateFilterBar<T>(params: IFilterBarConfigs<T>): ComponentType<IFilterBarProps<T>> {\r\n const FilterPanelInstance = CreateFilterPanel<T>(params)\r\n const FilteredInstance = CreateFiltered<T>(params)\r\n\r\n class FilterBar extends FilterBarBase<IFilterBarProps<T>, IFilterBarState, T> {\r\n defaultState: IFilterBarState = { keyword: '', panelState: { anchorEl: null } }\r\n constructor(props: IFilterBarProps<T>) {\r\n super(props)\r\n this.state = this.defaultState\r\n }\r\n\r\n filterStateStore: IFilterState<T> = { filter: {} }\r\n get filterState(): IFilterState<T> {\r\n return this.props.value ?? this.filterStateStore\r\n }\r\n\r\n setFilterState = (filterState: IFilterState<T>) => {\r\n if (!this.props.value) {\r\n this.filterStateStore = filterState\r\n }\r\n this.props.onChange && this.props.onChange(filterState)\r\n }\r\n\r\n get configs() {\r\n return {\r\n id: this.props.id ?? params.id ?? new Date().getTime().toString(),\r\n placeholder: this.props.placeholder ?? params.placeholder ?? 'Filter',\r\n notes: params.notes\r\n }\r\n }\r\n\r\n refFilterButton: HTMLButtonElement | null = null\r\n refSortButton: HTMLButtonElement | null = null\r\n render() {\r\n return (\r\n <ClickAwayListener onClickAway={this.closePanel}>\r\n <Wrapper>\r\n <IconButton ref={(ref) => (this.refFilterButton = ref)} onClick={() => this.showPanel('filterButton')}>\r\n <FilterListIcon />\r\n </IconButton>\r\n <Content>\r\n <FilteredInstance filterState={this.filterState} onRemove={this.handleRemove} />\r\n {this.renderTextField()}\r\n </Content>\r\n <ButtonClear visibled={!this.isFilterEmpty(this.filterState)} onClick={this.handleClear} />\r\n {/* <IconButton ref={(ref) => (this.refSortButton = ref)} onClick={() => this.showPanel('sortButton')}>\r\n <SwapVertIcon />\r\n </IconButton> */}\r\n {this.configs.notes && <FilterNotes {...this.configs.notes} />}\r\n <FilterPanelInstance {...this.state.panelState} keyword={this.state.keyword} onSubmit={this.handleAdd} onClose={this.closePanel} />\r\n </Wrapper>\r\n </ClickAwayListener>\r\n )\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n refBeforeInput: HTMLElement | null = null\r\n renderTextField = () => (\r\n <Box component='label' htmlFor={this.configs.id} sx={{ flex: 1, display: 'flex', alignItems: 'flex-end' }}>\r\n <Box ref={(ref: HTMLElement) => (this.refBeforeInput = ref)} sx={{ height: '100%' }} />\r\n <InputBase\r\n id={this.configs.id}\r\n placeholder={this.configs.placeholder}\r\n fullWidth\r\n autoComplete='off'\r\n inputRef={(ref: HTMLInputElement) => (this.refInput = ref)}\r\n onChange={(event) => this.setState({ keyword: event.target.value })}\r\n value={this.state.keyword}\r\n onFocus={() => this.showPanel('searchInput')}\r\n onKeyDown={this.handleKeyDown}\r\n />\r\n </Box>\r\n )\r\n\r\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n const keyCode: number = event.keyCode\r\n if (keyCode === 13) {\r\n if (!this.state.keyword) return\r\n const temp = this.addQuickSearch(this.filterState, params.quickSearch, this.state.keyword)\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n } else if (keyCode === 27) {\r\n this.refInput?.blur()\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleAdd: IFilterSubmitFunc<T> = (mode, data) => {\r\n let temp: IFilterChange<T> = { isChanged: false, filterState: this.filterState }\r\n if (mode === 'field' && !!data) {\r\n temp = this.patchFilterWithKey(this.filterState, data)\r\n } else if (mode === 'quickSearch') {\r\n temp = this.addQuickSearch(this.filterState, params.quickSearch, this.state.keyword)\r\n }\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleRemove: IFilterSubmitFunc<T> = (mode, data) => {\r\n let temp: IFilterChange<T> = { isChanged: false, filterState: this.filterState }\r\n if (mode === 'field' && !!data) {\r\n temp = this.deleteFilterWithKey(this.filterState, data)\r\n } else if (mode === 'quickSearch') {\r\n temp = this.removeQuickSearch(this.filterState)\r\n }\r\n temp.filterState.details = 'remove'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n handleClear = () => {\r\n this.setFilterState({ filter: {}, details: 'remove' })\r\n this.setState(this.defaultState)\r\n }\r\n\r\n showPanel = (reason: IFilterReason) => {\r\n let anchorEl = null\r\n switch (reason) {\r\n case 'searchInput':\r\n anchorEl = this.refBeforeInput\r\n break\r\n case 'filterButton':\r\n anchorEl = this.refFilterButton\r\n break\r\n // case 'sortButton':\r\n // anchorEl = this.refSortButton\r\n // break\r\n default:\r\n break\r\n }\r\n this.setState({ panelState: { anchorEl, reason } })\r\n }\r\n\r\n closePanel = () => this.setState({ panelState: { anchorEl: null } })\r\n }\r\n\r\n return FilterBar\r\n}\r\n\r\nexport default CreateFilterBar\r\n\r\nconst Wrapper = styled(Box)({\r\n display: 'flex',\r\n gap: '8px',\r\n width: '100%',\r\n borderRadius: '6px',\r\n transition: 'all linear 0.2s',\r\n padding: '2px',\r\n backgroundColor: '#fafafa',\r\n '&:hover': { backgroundColor: '#ededed' }\r\n})\r\n\r\nconst Content = styled(Box)({\r\n flex: 1,\r\n minHeight: '40px',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '6px'\r\n})\r\n"],"names":["CreateFilterBar","params","FilterPanelInstance","CreateFilterPanel","FilteredInstance","CreateFiltered","FilterBar","props","_this","_classCallCheck","_callSuper","_defineProperty","keyword","panelState","anchorEl","filter","filterState","value","filterStateStore","onChange","_jsxs","Box","component","htmlFor","configs","id","sx","flex","display","alignItems","children","_jsx","ref","refBeforeInput","height","InputBase","placeholder","fullWidth","autoComplete","inputRef","refInput","event","setState","target","state","onFocus","showPanel","onKeyDown","handleKeyDown","keyCode","_this$refInput","temp","addQuickSearch","quickSearch","details","isChanged","blur","setFilterState","defaultState","_this$refInput2","mode","data","_this$refInput3","patchFilterWithKey","_this$refInput4","deleteFilterWithKey","removeQuickSearch","forceUpdate","reason","refFilterButton","_inherits","FilterBarBase","_createClass","key","get","_this$props$value","this","_ref2","_this$props$id","_ref3","_this$props$placehold","Date","getTime","toString","notes","_this2","ClickAwayListener","onClickAway","closePanel","Wrapper","IconButton","onClick","FilterListIcon","Content","onRemove","handleRemove","renderTextField","ButtonClear","visibled","isFilterEmpty","handleClear","FilterNotes","_objectSpread","onSubmit","handleAdd","onClose","styled","gap","width","borderRadius","transition","padding","backgroundColor","minHeight","flexWrap"],"mappings":"qiBAUA,SAASA,EAAmBC,GAC1B,IAAMC,EAAsBC,EAAqBF,GAC3CG,EAAmBC,EAAkBJ,GAiJ3C,kBA7IE,SAAAK,EAAYC,GAAyB,IAAAC,EAEL,OAFKC,OAAAH,GACnCE,EAAAE,EAAAJ,KAAAA,GAAMC,IAAMI,EAAAH,EAFkB,eAAA,CAAEI,QAAS,GAAIC,WAAY,CAAEC,SAAU,QAAQH,EAAAH,EAM3C,mBAAA,CAAEO,OAAQ,CAAA,IAAIJ,EAAAH,EAKjC,kBAAA,SAACQ,GACXR,EAAKD,MAAMU,QACdT,EAAKU,iBAAmBF,GAE1BR,EAAKD,MAAMY,UAAYX,EAAKD,MAAMY,SAASH,MAC5CL,EAAAH,EAAA,kBAU2C,MAAIG,EAAAH,EAAA,gBACN,MAAIG,EAAAH,EAAA,WAuBV,MAAIG,EAAAH,EAAA,iBACH,MAAIG,EAAAH,EACvB,mBAAA,WAAA,OAChBY,EAACC,EAAI,CAAAC,UAAU,QAAQC,QAASf,EAAKgB,QAAQC,GAAIC,GAAI,CAAEC,KAAM,EAAGC,QAAS,OAAQC,WAAY,YAC3FC,SAAA,CAAAC,EAACV,EAAG,CAACW,IAAK,SAACA,GAAgB,OAAMxB,EAAKyB,eAAiBD,CAAI,EAAEN,GAAI,CAAEQ,OAAQ,UAC3EH,EAACI,EAAS,CACRV,GAAIjB,EAAKgB,QAAQC,GACjBW,YAAa5B,EAAKgB,QAAQY,YAC1BC,WACA,EAAAC,aAAa,MACbC,SAAU,SAACP,GAAqB,OAAMxB,EAAKgC,SAAWR,CAAI,EAC1Db,SAAU,SAACsB,GAAK,OAAKjC,EAAKkC,SAAS,CAAE9B,QAAS6B,EAAME,OAAO1B,OAAQ,EACnEA,MAAOT,EAAKoC,MAAMhC,QAClBiC,QAAS,WAAF,OAAQrC,EAAKsC,UAAU,cAAc,EAC5CC,UAAWvC,EAAKwC,sBAGrBrC,EAAAH,EAEe,iBAAA,SAACiC,GACf,IAAMQ,EAAkBR,EAAMQ,QAC9B,GAAgB,KAAZA,EAAgB,CAClB,IAAKzC,EAAKoC,MAAMhC,QAAS,OACzB,IAEsBsC,EAFhBC,EAAO3C,EAAK4C,eAAe5C,EAAKQ,YAAaf,EAAOoD,YAAa7C,EAAKoC,MAAMhC,SAElF,GADAuC,EAAKnC,YAAYsC,QAAU,MACrBH,EAAKI,UACI,QAAbL,EAAA1C,EAAKgC,gBAAQ,IAAAU,GAAbA,EAAeM,OACfhD,EAAKiD,eAAeN,EAAKnC,aACzBR,EAAKkC,SAASlC,EAAKkD,aAEtB,MAAM,GAAgB,KAAZT,EAAgB,CAAA,IAAAU,EACZ,QAAbA,EAAAnD,EAAKgC,gBAAQ,IAAAmB,GAAbA,EAAeH,OACfhD,EAAKkC,SAASlC,EAAKkD,aACpB,KACF/C,EAAAH,EAAA,aAEiC,SAACoD,EAAMC,GACvC,IAOsBC,EAPlBX,EAAyB,CAAEI,WAAW,EAAOvC,YAAaR,EAAKQ,cACtD,UAAT4C,GAAsBC,EACxBV,EAAO3C,EAAKuD,mBAAmBvD,EAAKQ,YAAa6C,GAC/B,gBAATD,IACTT,EAAO3C,EAAK4C,eAAe5C,EAAKQ,YAAaf,EAAOoD,YAAa7C,EAAKoC,MAAMhC,UAE9EuC,EAAKnC,YAAYsC,QAAU,MACrBH,EAAKI,aACI,QAAbO,EAAAtD,EAAKgC,gBAAQ,IAAAsB,GAAbA,EAAeN,OACfhD,EAAKiD,eAAeN,EAAKnC,aACzBR,EAAKkC,SAASlC,EAAKkD,kBAEtB/C,EAAAH,EAAA,gBAEoC,SAACoD,EAAMC,GAC1C,IAOsBG,EAPlBb,EAAyB,CAAEI,WAAW,EAAOvC,YAAaR,EAAKQ,cACtD,UAAT4C,GAAsBC,EACxBV,EAAO3C,EAAKyD,oBAAoBzD,EAAKQ,YAAa6C,GAChC,gBAATD,IACTT,EAAO3C,EAAK0D,kBAAkB1D,EAAKQ,cAErCmC,EAAKnC,YAAYsC,QAAU,SACrBH,EAAKI,aACI,QAAbS,EAAAxD,EAAKgC,gBAAQ,IAAAwB,GAAbA,EAAeR,OACfhD,EAAKiD,eAAeN,EAAKnC,aACzBR,EAAK2D,kBAERxD,EAAAH,EAAA,eAEa,WACZA,EAAKiD,eAAe,CAAE1C,OAAQ,CAAE,EAAEuC,QAAS,WAC3C9C,EAAKkC,SAASlC,EAAKkD,iBACpB/C,EAAAH,EAEW,aAAA,SAAC4D,GACX,IAAItD,EAAW,KACf,OAAQsD,GACN,IAAK,cACHtD,EAAWN,EAAKyB,eAChB,MACF,IAAK,eACHnB,EAAWN,EAAK6D,gBAQpB7D,EAAKkC,SAAS,CAAE7B,WAAY,CAAEC,SAAAA,EAAUsD,OAAAA,QACzCzD,EAAAH,EAEY,cAAA,WAAA,OAAMA,EAAKkC,SAAS,CAAE7B,WAAY,CAAEC,SAAU,OAAS,IAxIlEN,EAAKoC,MAAQpC,EAAKkD,aAAYlD,CAChC,CAAC,OAAA8D,EAAAhE,EALqBiE,GAKrBC,EAAAlE,EAAA,CAAA,CAAAmE,IAAA,cAAAC,IAGD,WAAe,IAAAC,EACb,OAAuBA,QAAvBA,EAAOC,KAAKrE,MAAMU,aAAK0D,IAAAA,EAAAA,EAAIC,KAAK1D,gBAClC,GAAC,CAAAuD,IAAA,UAAAC,IASD,WAAW,IAAAG,EAAAC,EAAAC,EAAAC,EACT,MAAO,CACLvD,GAA8B,QAA5BoD,EAAeC,QAAfA,EAAEF,KAAKrE,MAAMkB,UAAEqD,IAAAA,EAAAA,EAAI7E,EAAOwB,UAAE,IAAAoD,EAAAA,GAAI,IAAII,MAAOC,UAAUC,WACvD/C,oBAAW2C,EAAwB,QAAxBC,EAAEJ,KAAKrE,MAAM6B,mBAAW4C,IAAAA,EAAAA,EAAI/E,EAAOmC,mBAAW,IAAA2C,EAAAA,EAAI,SAC7DK,MAAOnF,EAAOmF,MAElB,GAAC,CAAAX,IAAA,SAAAxD,MAID,WAAM,IAAAoE,EAAAT,KACJ,OACE7C,EAACuD,EAAiB,CAACC,YAAaX,KAAKY,WACnC1D,SAAAV,EAACqE,EAAO,CAAA3D,SAAA,CACNC,EAAC2D,EAAU,CAAC1D,IAAK,SAACA,GAAG,OAAMqD,EAAKhB,gBAAkBrC,CAAI,EAAE2D,QAAS,WAAF,OAAQN,EAAKvC,UAAU,eAAe,EAAAhB,SACnGC,EAAC6D,EAAiB,CAAA,KAEpBxE,EAACyE,EACC,CAAA/D,SAAA,CAAAC,EAAC3B,EAAgB,CAACY,YAAa4D,KAAK5D,YAAa8E,SAAUlB,KAAKmB,eAC/DnB,KAAKoB,qBAERjE,EAACkE,EAAY,CAAAC,UAAWtB,KAAKuB,cAAcvB,KAAK5D,aAAc2E,QAASf,KAAKwB,cAI3ExB,KAAKpD,QAAQ4D,OAASrD,EAACsE,EAAWC,EAAA,CAAA,EAAK1B,KAAKpD,QAAQ4D,QACrDrD,EAAC7B,EAAmBoG,EAAAA,EAAK,GAAA1B,KAAKhC,MAAM/B,YAAU,GAAA,CAAED,QAASgE,KAAKhC,MAAMhC,QAAS2F,SAAU3B,KAAK4B,UAAWC,QAAS7B,KAAKY,kBAI7H,IAAC,GA+FL,CAIA,IAAMC,EAAUiB,EAAOrF,EAAPqF,CAAY,CAC1B9E,QAAS,OACT+E,IAAK,MACLC,MAAO,OACPC,aAAc,MACdC,WAAY,kBACZC,QAAS,MACTC,gBAAiB,UACjB,UAAW,CAAEA,gBAAiB,aAG1BnB,EAAUa,EAAOrF,EAAPqF,CAAY,CAC1B/E,KAAM,EACNsF,UAAW,OACXrF,QAAS,OACTsF,SAAU,OACVrF,WAAY,SACZ8E,IAAK"}
1
+ {"version":3,"file":"create.filter-bar.js","sources":["../../../../src/table-grid/filter-bar/create.filter-bar.tsx"],"sourcesContent":["import React, { ComponentType } from 'react'\r\nimport { Box, IconButton, InputBase, styled } from '@mui/material'\r\nimport FilterListIcon from '@mui/icons-material/FilterList'\r\nimport ClickAwayListener from '@mui/material/ClickAwayListener'\r\nimport { ButtonClear, FilterNotes } from './ui.units'\r\nimport { IFilterReason, IFilterState, IFilterBarConfigs, IFilterBarProps, IFilterBarState, IFilterSubmitFunc } from './types'\r\nimport FilterBarBase, { IFilterChange } from './base'\r\nimport CreateFiltered from './create.filtered'\r\nimport CreateFilterPanel from './create.filter-panel'\r\n\r\nfunction CreateFilterBar<T>(params: IFilterBarConfigs<T>): ComponentType<IFilterBarProps<T>> {\r\n const FilterPanelInstance = CreateFilterPanel<T>(params)\r\n const FilteredInstance = CreateFiltered<T>(params)\r\n\r\n class FilterBar extends FilterBarBase<IFilterBarProps<T>, IFilterBarState, T> {\r\n defaultState: IFilterBarState = { keyword: '', panelState: { anchorEl: null } }\r\n constructor(props: IFilterBarProps<T>) {\r\n super(props)\r\n this.state = this.defaultState\r\n }\r\n\r\n filterStateStore: IFilterState<T> = { filter: {} }\r\n get filterState(): IFilterState<T> {\r\n return this.props.value ?? this.filterStateStore\r\n }\r\n\r\n setFilterState = (filterState: IFilterState<T>) => {\r\n if (!this.props.value) {\r\n this.filterStateStore = filterState\r\n }\r\n this.props.onChange && this.props.onChange(filterState)\r\n }\r\n\r\n get configs() {\r\n return {\r\n id: this.props.id ?? params.id ?? new Date().getTime().toString(),\r\n placeholder: this.props.placeholder ?? params.placeholder ?? 'Filter',\r\n notes: params.notes\r\n }\r\n }\r\n\r\n refFilterButton: HTMLButtonElement | null = null\r\n refSortButton: HTMLButtonElement | null = null\r\n render() {\r\n return (\r\n <ClickAwayListener onClickAway={this.closePanel}>\r\n <Wrapper>\r\n <IconButton ref={(ref) => (this.refFilterButton = ref)} onClick={() => this.showPanel('filterButton')}>\r\n <FilterListIcon />\r\n </IconButton>\r\n <Content>\r\n <FilteredInstance filterState={this.filterState} onRemove={this.handleRemove} />\r\n {this.renderTextField()}\r\n </Content>\r\n <ButtonClear visibled={!this.isFilterEmpty(this.filterState)} onClick={this.handleClear} />\r\n {/* <IconButton ref={(ref) => (this.refSortButton = ref)} onClick={() => this.showPanel('sortButton')}>\r\n <SwapVertIcon />\r\n </IconButton> */}\r\n {this.configs.notes && <FilterNotes {...this.configs.notes} />}\r\n <FilterPanelInstance {...this.state.panelState} keyword={this.state.keyword} onSubmit={this.handleAdd} onClose={this.closePanel} />\r\n </Wrapper>\r\n </ClickAwayListener>\r\n )\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n refBeforeInput: HTMLElement | null = null\r\n renderTextField = () => (\r\n <Box component='label' htmlFor={this.configs.id} sx={{ flex: 1, display: 'flex', alignItems: 'flex-end' }}>\r\n <Box ref={(ref: HTMLElement) => (this.refBeforeInput = ref)} sx={{ height: '100%' }} />\r\n <InputBase\r\n id={this.configs.id}\r\n placeholder={this.configs.placeholder}\r\n fullWidth\r\n autoComplete='off'\r\n inputRef={(ref: HTMLInputElement) => (this.refInput = ref)}\r\n onChange={(event) => this.setState({ keyword: event.target.value })}\r\n value={this.state.keyword}\r\n onFocus={() => this.showPanel('searchInput')}\r\n onKeyDown={this.handleKeyDown}\r\n />\r\n </Box>\r\n )\r\n\r\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n const keyCode: number = event.keyCode\r\n if (keyCode === 13) {\r\n if (!this.state.keyword) return\r\n const temp = this.addQuickSearch(this.filterState, params.quickSearch, this.state.keyword)\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n } else if (keyCode === 27) {\r\n this.refInput?.blur()\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleAdd: IFilterSubmitFunc<T> = (mode, data) => {\r\n let temp: IFilterChange<T> = { isChanged: false, filterState: this.filterState }\r\n if (mode === 'field' && !!data) {\r\n temp = this.patchFilterWithKey(this.filterState, data)\r\n } else if (mode === 'quickSearch') {\r\n temp = this.addQuickSearch(this.filterState, params.quickSearch, this.state.keyword)\r\n }\r\n temp.filterState.details = 'add'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.setState(this.defaultState)\r\n }\r\n }\r\n\r\n handleRemove: IFilterSubmitFunc<T> = (mode, data) => {\r\n let temp: IFilterChange<T> = { isChanged: false, filterState: this.filterState }\r\n if (mode === 'field' && !!data) {\r\n temp = this.deleteFilterWithKey(this.filterState, data)\r\n } else if (mode === 'quickSearch') {\r\n temp = this.removeQuickSearch(this.filterState)\r\n }\r\n temp.filterState.details = 'remove'\r\n if (!!temp.isChanged) {\r\n this.refInput?.blur()\r\n this.setFilterState(temp.filterState)\r\n this.forceUpdate()\r\n }\r\n }\r\n\r\n handleClear = () => {\r\n this.setFilterState({ filter: {}, details: 'remove' })\r\n this.setState(this.defaultState)\r\n }\r\n\r\n showPanel = (reason: IFilterReason) => {\r\n let anchorEl = null\r\n switch (reason) {\r\n case 'searchInput':\r\n anchorEl = this.refBeforeInput\r\n break\r\n case 'filterButton':\r\n anchorEl = this.refFilterButton\r\n break\r\n // case 'sortButton':\r\n // anchorEl = this.refSortButton\r\n // break\r\n default:\r\n break\r\n }\r\n this.setState({ panelState: { anchorEl, reason } })\r\n }\r\n\r\n closePanel = () => this.setState({ panelState: { anchorEl: null } })\r\n }\r\n\r\n return FilterBar\r\n}\r\n\r\nexport default CreateFilterBar\r\n\r\nconst Wrapper = styled(Box)({\r\n display: 'flex',\r\n gap: '8px',\r\n width: '100%',\r\n borderRadius: '6px',\r\n transition: 'all linear 0.2s',\r\n padding: '2px',\r\n backgroundColor: '#fafafa',\r\n '&:hover': { backgroundColor: '#ededed' }\r\n})\r\n\r\nconst Content = styled(Box)({\r\n flex: 1,\r\n minHeight: '40px',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '6px'\r\n})\r\n"],"names":["CreateFilterBar","params","FilterPanelInstance","CreateFilterPanel","FilteredInstance","CreateFiltered","FilterBar","props","_this","_classCallCheck","_callSuper","_defineProperty","keyword","panelState","anchorEl","filter","filterState","value","filterStateStore","onChange","_jsxs","Box","component","htmlFor","configs","id","sx","flex","display","alignItems","children","_jsx","ref","refBeforeInput","height","InputBase","placeholder","fullWidth","autoComplete","inputRef","refInput","event","setState","target","state","onFocus","showPanel","onKeyDown","handleKeyDown","keyCode","_this$refInput","temp","addQuickSearch","quickSearch","details","isChanged","blur","setFilterState","defaultState","_this$refInput2","mode","data","_this$refInput3","patchFilterWithKey","_this$refInput4","deleteFilterWithKey","removeQuickSearch","forceUpdate","reason","refFilterButton","_inherits","FilterBarBase","_createClass","key","get","_this$props$value","this","_ref2","_this$props$id","_ref3","_this$props$placehold","Date","getTime","toString","notes","_this2","ClickAwayListener","onClickAway","closePanel","Wrapper","IconButton","onClick","FilterListIcon","Content","onRemove","handleRemove","renderTextField","ButtonClear","visibled","isFilterEmpty","handleClear","FilterNotes","_objectSpread","onSubmit","handleAdd","onClose","styled","gap","width","borderRadius","transition","padding","backgroundColor","minHeight","flexWrap"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as r,classCallCheck as t,callSuper as i,defineProperty as n}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o,jsxs as l}from"react/jsx-runtime";import{Fragment as a}from"react";import{styled as s,Box as d,RadioGroup as u,MenuList as c,MenuItem as m,Typography as f,Divider as p,Button as v,TextField as h,FormControlLabel as g,Radio as b}from"@mui/material";import S,{filterPanelClasses as x}from"./base.js";import{convertFormDataToJson as y}from"../../form/helpers.js";function C(s){return function(){function u(e){var r;return t(this,u),r=i(this,u,[e]),n(r,"renderFrom",(function(e){var t,i=s.fields[e],n=null!==(t=null==i?void 0:i.label)&&void 0!==t?t:e.toString();return o("form",{onSubmit:function(t){return r.handleSubmit(e,t)},children:l(k,{children:[o(d,{className:"top-bar",children:o(f,{variant:"subtitle2",children:n})}),o(d,{className:"content",children:r.renderWithMode(e)}),"select"===(null==i?void 0:i.type)&&o(p,{variant:"middle"}),l(d,{className:"actions",children:[o(v,{size:"small",color:"inherit",onClick:r.props.onCancel,children:"Cancel"}),o(v,{size:"small",color:"primary",type:"submit",sx:{fontWeight:700},children:"Apply"})]})]})})})),n(r,"renderWithMode",(function(e){var t=s.fields[e],i=r.state.messageError;return"select"===(null==t?void 0:t.type)?o(j,{name:e.toString(),className:i?"error":"",onChange:function(){return r.setState({messageError:void 0})},children:t.options.map((function(e,r){var t;return o(g,{value:e.value,control:o(b,{}),label:null!==(t=e.label)&&void 0!==t?t:e.value},e.value.toString()+r)}))}):o(h,{autoFocus:!0,name:e.toString(),size:"small",error:!!i,helperText:i})})),n(r,"handleSubmit",(function(e,t){var i;t.preventDefault(),t.stopPropagation();var n=new FormData(t.currentTarget),o=null===(i=y(n)[e])||void 0===i?void 0:i.toString(),l=s.fields[e],a=r.validated(null!=o?o:"",e,l);if(a.error)r.setState({messageError:a.message});else{var d,u=void 0;if("select"===(null==l?void 0:l.type))u=null===(d=l.options.find((function(e){return e.value===o})))||void 0===d?void 0:d.label;r.props.onSubmit&&r.props.onSubmit("field",{field:e,value:o,label:u})}})),r.state={fieldSelected:null},r}return e(u,S),r(u,[{key:"render",value:function(){var e=this,r=this.state.fieldSelected;if(r)return this.renderFrom(r);var t=Object.keys(s.fields).filter((function(e){return!!e&&"Search"!==e}));return o(c,{className:x.list,sx:{minWidth:"200px"},children:t.map((function(r,t){var i,n=s.fields[r];return n?o(m,{className:x.item,onClick:function(){return e.setState({fieldSelected:r,messageError:void 0})},children:null!==(i=null==n?void 0:n.label)&&void 0!==i?i:r.toString()},r.toString()+t):o(a,{},r.toString()+t)}))})}}])}()}var k=s(d)({minWidth:"200px",borderRadius:"4px",overflow:"hidden",".top-bar":{background:"#000",padding:"8px",".MuiTypography-root":{color:"#fff"}},".content":{padding:"8px"},".actions":{display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"8px"}}),j=s(u)({marginLeft:"-8px",marginRight:"-8px","&.error .MuiRadio-root":{color:"#d32f2f"},".MuiFormControlLabel-root":{margin:0},".MuiFormControlLabel-root:hover":{backgroundColor:"rgba(25, 118, 210, 0.04)"}});export{C as default};
1
+ import{inherits as e,createClass as r,classCallCheck as t,callSuper as i,defineProperty as n}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as o,jsxs as l}from"react/jsx-runtime";import{Fragment as a}from"react";import{styled as s,Box as d,RadioGroup as u,MenuList as c,MenuItem as m,Typography as f,Divider as p,Button as v,TextField as h,FormControlLabel as g,Radio as b}from"@mui/material";import S,{filterPanelClasses as x}from"./base.js";import{convertFormDataToJson as y}from"../../form/helpers.js";function C(s){return function(){function u(e){var r;return t(this,u),r=i(this,u,[e]),n(r,"renderFrom",function(e){var t,i=s.fields[e],n=null!==(t=null==i?void 0:i.label)&&void 0!==t?t:e.toString();return o("form",{onSubmit:function(t){return r.handleSubmit(e,t)},children:l(k,{children:[o(d,{className:"top-bar",children:o(f,{variant:"subtitle2",children:n})}),o(d,{className:"content",children:r.renderWithMode(e)}),"select"===(null==i?void 0:i.type)&&o(p,{variant:"middle"}),l(d,{className:"actions",children:[o(v,{size:"small",color:"inherit",onClick:r.props.onCancel,children:"Cancel"}),o(v,{size:"small",color:"primary",type:"submit",sx:{fontWeight:700},children:"Apply"})]})]})})}),n(r,"renderWithMode",function(e){var t=s.fields[e],i=r.state.messageError;return"select"===(null==t?void 0:t.type)?o(j,{name:e.toString(),className:i?"error":"",onChange:function(){return r.setState({messageError:void 0})},children:t.options.map(function(e,r){var t;return o(g,{value:e.value,control:o(b,{}),label:null!==(t=e.label)&&void 0!==t?t:e.value},e.value.toString()+r)})}):o(h,{autoFocus:!0,name:e.toString(),size:"small",error:!!i,helperText:i})}),n(r,"handleSubmit",function(e,t){var i;t.preventDefault(),t.stopPropagation();var n=new FormData(t.currentTarget),o=null===(i=y(n)[e])||void 0===i?void 0:i.toString(),l=s.fields[e],a=r.validated(null!=o?o:"",e,l);if(a.error)r.setState({messageError:a.message});else{var d,u=void 0;if("select"===(null==l?void 0:l.type))u=null===(d=l.options.find(function(e){return e.value===o}))||void 0===d?void 0:d.label;r.props.onSubmit&&r.props.onSubmit("field",{field:e,value:o,label:u})}}),r.state={fieldSelected:null},r}return e(u,S),r(u,[{key:"render",value:function(){var e=this,r=this.state.fieldSelected;if(r)return this.renderFrom(r);var t=Object.keys(s.fields).filter(function(e){return!!e&&"Search"!==e});return o(c,{className:x.list,sx:{minWidth:"200px"},children:t.map(function(r,t){var i,n=s.fields[r];return n?o(m,{className:x.item,onClick:function(){return e.setState({fieldSelected:r,messageError:void 0})},children:null!==(i=null==n?void 0:n.label)&&void 0!==i?i:r.toString()},r.toString()+t):o(a,{},r.toString()+t)})})}}])}()}var k=s(d)({minWidth:"200px",borderRadius:"4px",overflow:"hidden",".top-bar":{background:"#000",padding:"8px",".MuiTypography-root":{color:"#fff"}},".content":{padding:"8px"},".actions":{display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"8px"}}),j=s(u)({marginLeft:"-8px",marginRight:"-8px","&.error .MuiRadio-root":{color:"#d32f2f"},".MuiFormControlLabel-root":{margin:0},".MuiFormControlLabel-root:hover":{backgroundColor:"rgba(25, 118, 210, 0.04)"}});export{C as default};
2
2
  //# sourceMappingURL=create.filter-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.filter-menu.js","sources":["../../../../src/table-grid/filter-bar/create.filter-menu.tsx"],"sourcesContent":["import React, { ComponentType, Fragment } from 'react'\r\nimport { Box, Button, ButtonProps, Divider } from '@mui/material'\r\nimport { FormControlLabel, MenuItem, MenuList, Radio, RadioGroup, styled, TextField, Typography } from '@mui/material'\r\nimport FilterBarBase, { filterPanelClasses } from './base'\r\nimport { IFilterBarConfigs, IFilterModel, IFilterSubmitFunc } from './types'\r\nimport { convertFormDataToJson } from '../../form/helpers'\r\n\r\nexport interface IFilterMenuProps<T> {\r\n onSubmit?: IFilterSubmitFunc<T>\r\n onCancel?: ButtonProps['onClick']\r\n}\r\n\r\nexport interface IFilterMenuState<T> {\r\n fieldSelected: keyof IFilterModel<T> | null\r\n messageError?: string\r\n}\r\n\r\nfunction CreateFilterMenu<T>(params: IFilterBarConfigs<T>): ComponentType<IFilterMenuProps<T>> {\r\n class FilterMenu extends FilterBarBase<IFilterMenuProps<T>, IFilterMenuState<T>, T> {\r\n constructor(props: IFilterMenuProps<T>) {\r\n super(props)\r\n this.state = { fieldSelected: null }\r\n }\r\n\r\n render() {\r\n const { fieldSelected } = this.state\r\n if (!!fieldSelected) return this.renderFrom(fieldSelected)\r\n const keys = (Object.keys(params.fields) as (keyof IFilterModel<T>)[]).filter((x) => !!x && x !== 'Search')\r\n return (\r\n <MenuList className={filterPanelClasses.list} sx={{ minWidth: '200px' }}>\r\n {keys.map((x, i) => {\r\n const item = params.fields[x]\r\n if (!item) return <Fragment key={x.toString() + i} />\r\n return (\r\n <MenuItem\r\n key={x.toString() + i}\r\n className={filterPanelClasses.item}\r\n onClick={() => this.setState({ fieldSelected: x, messageError: undefined })}\r\n >\r\n {item?.label ?? x.toString()}\r\n </MenuItem>\r\n )\r\n })}\r\n </MenuList>\r\n )\r\n }\r\n\r\n renderFrom = (fieldSelected: keyof IFilterModel<T>) => {\r\n const fieldConfig = params.fields[fieldSelected]\r\n const label = fieldConfig?.label ?? fieldSelected.toString()\r\n return (\r\n <form onSubmit={(e) => this.handleSubmit(fieldSelected, e)}>\r\n <WrapPanelFilterMode>\r\n <Box className='top-bar'>\r\n <Typography variant='subtitle2'>{label}</Typography>\r\n </Box>\r\n <Box className='content'>{this.renderWithMode(fieldSelected)}</Box>\r\n {fieldConfig?.type === 'select' && <Divider variant='middle' />}\r\n <Box className='actions'>\r\n <Button size='small' color='inherit' onClick={this.props.onCancel}>\r\n Cancel\r\n </Button>\r\n <Button size='small' color='primary' type='submit' sx={{ fontWeight: 700 }}>\r\n Apply\r\n </Button>\r\n </Box>\r\n </WrapPanelFilterMode>\r\n </form>\r\n )\r\n }\r\n\r\n renderWithMode = (fieldSelected: keyof IFilterModel<T>) => {\r\n const fieldConfig = params.fields[fieldSelected]\r\n const { messageError } = this.state\r\n switch (fieldConfig?.type) {\r\n case 'select':\r\n return (\r\n <CustomRadioGroup\r\n name={fieldSelected.toString()}\r\n className={messageError ? 'error' : ''}\r\n onChange={() => this.setState({ messageError: undefined })}\r\n >\r\n {fieldConfig.options.map((x, i) => (\r\n <FormControlLabel key={x.value.toString() + i} value={x.value} control={<Radio />} label={x.label ?? x.value} />\r\n ))}\r\n </CustomRadioGroup>\r\n )\r\n case 'string':\r\n default:\r\n return <TextField autoFocus name={fieldSelected.toString()} size='small' error={!!messageError} helperText={messageError} />\r\n }\r\n }\r\n\r\n handleSubmit = (fieldSelected: keyof IFilterModel<T>, event: React.FormEvent<HTMLFormElement>) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n const formData = new FormData(event.currentTarget as HTMLFormElement)\r\n const obj = convertFormDataToJson<T>(formData)\r\n const value = obj[fieldSelected as keyof T]?.toString()\r\n\r\n const fieldConfig = params.fields[fieldSelected]\r\n const validate = this.validated(value ?? '', fieldSelected, fieldConfig)\r\n if (validate.error) {\r\n this.setState({ messageError: validate.message })\r\n return\r\n }\r\n\r\n let label: string | undefined = undefined\r\n if (fieldConfig?.type === 'select') {\r\n label = fieldConfig.options.find((x) => x.value === value)?.label\r\n }\r\n\r\n this.props.onSubmit && this.props.onSubmit('field', { field: fieldSelected, value, label })\r\n }\r\n }\r\n\r\n return FilterMenu\r\n}\r\n\r\nexport default CreateFilterMenu\r\n\r\nconst WrapPanelFilterMode = styled(Box)({\r\n minWidth: '200px',\r\n borderRadius: '4px',\r\n overflow: 'hidden',\r\n '.top-bar': {\r\n background: '#000',\r\n padding: '8px',\r\n '.MuiTypography-root': {\r\n color: '#fff'\r\n }\r\n },\r\n '.content': {\r\n padding: '8px'\r\n },\r\n '.actions': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n padding: '8px'\r\n }\r\n})\r\n\r\nconst CustomRadioGroup = styled(RadioGroup)({\r\n marginLeft: '-8px',\r\n marginRight: '-8px',\r\n '&.error .MuiRadio-root': {\r\n color: '#d32f2f'\r\n },\r\n '.MuiFormControlLabel-root': {\r\n margin: 0\r\n },\r\n '.MuiFormControlLabel-root:hover': {\r\n backgroundColor: 'rgba(25, 118, 210, 0.04)'\r\n }\r\n})\r\n"],"names":["CreateFilterMenu","params","FilterMenu","props","_this","_classCallCheck","_callSuper","_defineProperty","fieldSelected","_fieldConfig$label","fieldConfig","fields","label","toString","_jsx","onSubmit","e","handleSubmit","children","_jsxs","WrapPanelFilterMode","Box","className","Typography","variant","renderWithMode","type","Divider","Button","size","color","onClick","onCancel","sx","fontWeight","messageError","state","CustomRadioGroup","name","onChange","setState","undefined","options","map","x","i","_x$label","FormControlLabel","value","control","Radio","TextField","autoFocus","error","helperText","event","_obj$fieldSelected","preventDefault","stopPropagation","formData","FormData","currentTarget","convertFormDataToJson","validate","validated","message","_fieldConfig$options$","find","field","_inherits","FilterBarBase","_createClass","key","_this2","this","renderFrom","keys","Object","filter","MenuList","filterPanelClasses","list","minWidth","_item$label","item","MenuItem","Fragment","styled","borderRadius","overflow","background","padding","display","alignItems","justifyContent","RadioGroup","marginLeft","marginRight","margin","backgroundColor"],"mappings":"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"}
1
+ {"version":3,"file":"create.filter-menu.js","sources":["../../../../src/table-grid/filter-bar/create.filter-menu.tsx"],"sourcesContent":["import React, { ComponentType, Fragment } from 'react'\r\nimport { Box, Button, ButtonProps, Divider } from '@mui/material'\r\nimport { FormControlLabel, MenuItem, MenuList, Radio, RadioGroup, styled, TextField, Typography } from '@mui/material'\r\nimport FilterBarBase, { filterPanelClasses } from './base'\r\nimport { IFilterBarConfigs, IFilterModel, IFilterSubmitFunc } from './types'\r\nimport { convertFormDataToJson } from '../../form/helpers'\r\n\r\nexport interface IFilterMenuProps<T> {\r\n onSubmit?: IFilterSubmitFunc<T>\r\n onCancel?: ButtonProps['onClick']\r\n}\r\n\r\nexport interface IFilterMenuState<T> {\r\n fieldSelected: keyof IFilterModel<T> | null\r\n messageError?: string\r\n}\r\n\r\nfunction CreateFilterMenu<T>(params: IFilterBarConfigs<T>): ComponentType<IFilterMenuProps<T>> {\r\n class FilterMenu extends FilterBarBase<IFilterMenuProps<T>, IFilterMenuState<T>, T> {\r\n constructor(props: IFilterMenuProps<T>) {\r\n super(props)\r\n this.state = { fieldSelected: null }\r\n }\r\n\r\n render() {\r\n const { fieldSelected } = this.state\r\n if (!!fieldSelected) return this.renderFrom(fieldSelected)\r\n const keys = (Object.keys(params.fields) as (keyof IFilterModel<T>)[]).filter((x) => !!x && x !== 'Search')\r\n return (\r\n <MenuList className={filterPanelClasses.list} sx={{ minWidth: '200px' }}>\r\n {keys.map((x, i) => {\r\n const item = params.fields[x]\r\n if (!item) return <Fragment key={x.toString() + i} />\r\n return (\r\n <MenuItem\r\n key={x.toString() + i}\r\n className={filterPanelClasses.item}\r\n onClick={() => this.setState({ fieldSelected: x, messageError: undefined })}\r\n >\r\n {item?.label ?? x.toString()}\r\n </MenuItem>\r\n )\r\n })}\r\n </MenuList>\r\n )\r\n }\r\n\r\n renderFrom = (fieldSelected: keyof IFilterModel<T>) => {\r\n const fieldConfig = params.fields[fieldSelected]\r\n const label = fieldConfig?.label ?? fieldSelected.toString()\r\n return (\r\n <form onSubmit={(e) => this.handleSubmit(fieldSelected, e)}>\r\n <WrapPanelFilterMode>\r\n <Box className='top-bar'>\r\n <Typography variant='subtitle2'>{label}</Typography>\r\n </Box>\r\n <Box className='content'>{this.renderWithMode(fieldSelected)}</Box>\r\n {fieldConfig?.type === 'select' && <Divider variant='middle' />}\r\n <Box className='actions'>\r\n <Button size='small' color='inherit' onClick={this.props.onCancel}>\r\n Cancel\r\n </Button>\r\n <Button size='small' color='primary' type='submit' sx={{ fontWeight: 700 }}>\r\n Apply\r\n </Button>\r\n </Box>\r\n </WrapPanelFilterMode>\r\n </form>\r\n )\r\n }\r\n\r\n renderWithMode = (fieldSelected: keyof IFilterModel<T>) => {\r\n const fieldConfig = params.fields[fieldSelected]\r\n const { messageError } = this.state\r\n switch (fieldConfig?.type) {\r\n case 'select':\r\n return (\r\n <CustomRadioGroup\r\n name={fieldSelected.toString()}\r\n className={messageError ? 'error' : ''}\r\n onChange={() => this.setState({ messageError: undefined })}\r\n >\r\n {fieldConfig.options.map((x, i) => (\r\n <FormControlLabel key={x.value.toString() + i} value={x.value} control={<Radio />} label={x.label ?? x.value} />\r\n ))}\r\n </CustomRadioGroup>\r\n )\r\n case 'string':\r\n default:\r\n return <TextField autoFocus name={fieldSelected.toString()} size='small' error={!!messageError} helperText={messageError} />\r\n }\r\n }\r\n\r\n handleSubmit = (fieldSelected: keyof IFilterModel<T>, event: React.FormEvent<HTMLFormElement>) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n const formData = new FormData(event.currentTarget as HTMLFormElement)\r\n const obj = convertFormDataToJson<T>(formData)\r\n const value = obj[fieldSelected as keyof T]?.toString()\r\n\r\n const fieldConfig = params.fields[fieldSelected]\r\n const validate = this.validated(value ?? '', fieldSelected, fieldConfig)\r\n if (validate.error) {\r\n this.setState({ messageError: validate.message })\r\n return\r\n }\r\n\r\n let label: string | undefined = undefined\r\n if (fieldConfig?.type === 'select') {\r\n label = fieldConfig.options.find((x) => x.value === value)?.label\r\n }\r\n\r\n this.props.onSubmit && this.props.onSubmit('field', { field: fieldSelected, value, label })\r\n }\r\n }\r\n\r\n return FilterMenu\r\n}\r\n\r\nexport default CreateFilterMenu\r\n\r\nconst WrapPanelFilterMode = styled(Box)({\r\n minWidth: '200px',\r\n borderRadius: '4px',\r\n overflow: 'hidden',\r\n '.top-bar': {\r\n background: '#000',\r\n padding: '8px',\r\n '.MuiTypography-root': {\r\n color: '#fff'\r\n }\r\n },\r\n '.content': {\r\n padding: '8px'\r\n },\r\n '.actions': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n padding: '8px'\r\n }\r\n})\r\n\r\nconst CustomRadioGroup = styled(RadioGroup)({\r\n marginLeft: '-8px',\r\n marginRight: '-8px',\r\n '&.error .MuiRadio-root': {\r\n color: '#d32f2f'\r\n },\r\n '.MuiFormControlLabel-root': {\r\n margin: 0\r\n },\r\n '.MuiFormControlLabel-root:hover': {\r\n backgroundColor: 'rgba(25, 118, 210, 0.04)'\r\n }\r\n})\r\n"],"names":["CreateFilterMenu","params","FilterMenu","props","_this","_classCallCheck","_callSuper","_defineProperty","fieldSelected","_fieldConfig$label","fieldConfig","fields","label","toString","_jsx","onSubmit","e","handleSubmit","children","_jsxs","WrapPanelFilterMode","Box","className","Typography","variant","renderWithMode","type","Divider","Button","size","color","onClick","onCancel","sx","fontWeight","messageError","state","CustomRadioGroup","name","onChange","setState","undefined","options","map","x","i","_x$label","FormControlLabel","value","control","Radio","TextField","autoFocus","error","helperText","event","_obj$fieldSelected","preventDefault","stopPropagation","formData","FormData","currentTarget","convertFormDataToJson","validate","validated","message","_fieldConfig$options$","find","field","_inherits","FilterBarBase","_createClass","key","_this2","this","renderFrom","keys","Object","filter","MenuList","filterPanelClasses","list","minWidth","_item$label","item","MenuItem","Fragment","styled","borderRadius","overflow","background","padding","display","alignItems","justifyContent","RadioGroup","marginLeft","marginRight","margin","backgroundColor"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inherits as r,createClass as e,objectSpread2 as n,classCallCheck as o,callSuper as t,defineProperty as i}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,Fragment as s,jsxs as c}from"react/jsx-runtime";import{styled as l,Box as p,Popper as u,Fade as d,MenuList as h,MenuItem as f,Typography as m}from"@mui/material";import{FilterNotes as b}from"./ui.units.js";import k,{filterPanelClasses as S}from"./base.js";import v from"./create.filter-menu.js";function x(l){var p=v(l),x=function(){function v(){var r;o(this,v);for(var e=arguments.length,u=new Array(e),d=0;d<e;d++)u[d]=arguments[d];return r=t(this,v,[].concat(u)),i(r,"renderContent",(function(){switch(r.props.reason){case"searchInput":return r.renderSearchInput();case"filterButton":return a(p,{onCancel:r.props.onClose,onSubmit:function(e,n){r.props.onSubmit&&r.props.onSubmit(e,n),r.props.onClose&&r.props.onClose()}})}})),i(r,"renderSearchInput",(function(){var e;if("searchInput"!==r.props.reason)return a(s,{});var o=r.getFieldsMatches(l.fields,null!==(e=r.props.keyword)&&void 0!==e?e:""),t=Object.keys(o).filter((function(r){return!!r}));return c(h,{className:S.list,children:[t.map((function(e,o){var t,i=l.fields[e],s=null!==(t=null==i?void 0:i.label)&&void 0!==t?t:e.toString();return c(f,{className:S.item,onClick:function(){return r.handleClick(e)},children:[c(m,{noWrap:!0,variant:"body2",component:"span",sx:{flex:1},children:[s,' "',r.props.keyword,'"']}),(null==i?void 0:i.notes)&&a(b,n({title:"The ".concat(s," includes"),disabledSize:!0},i.notes))]},e.toString()+o)})),r.renderQuickSearch()]})})),i(r,"renderQuickSearch",(function(){var e;if(!l.quickSearch)return a(s,{});var o=l.quickSearch,t=null!==(e=o.label)&&void 0!==e?e:"Quick search";return c(f,{className:S.item,onClick:r.handleQuickSearchClick,children:[c(m,{noWrap:!0,variant:"body2",component:"span",sx:{flex:1},children:[t,' "',r.props.keyword,'"']}),o.notes&&a(b,n({title:"The ".concat(t.toLocaleLowerCase()," includes"),disabledSize:!0},o.notes))]})})),i(r,"handleClick",(function(e){r.props.onSubmit&&r.props.onSubmit("field",{field:e,value:r.props.keyword})})),i(r,"handleQuickSearchClick",(function(){r.props.onSubmit&&r.props.onSubmit("quickSearch")})),r}return r(v,k),e(v,[{key:"render",value:function(){var r=this,e=Boolean(this.props.anchorEl)&&(!!this.props.keyword||"searchInput"!==this.props.reason);return a(u,{anchorEl:this.props.anchorEl,open:e,placement:"bottom-start",transition:!0,sx:{zIndex:1350,maxWidth:"100%"},children:function(e){var o=e.TransitionProps;return a(d,n(n({},o),{},{timeout:0,children:a(C,{className:S.root,children:r.renderContent()})}))}})}}])}();return x}var C=l(p)({borderRadius:"4px",boxShadow:"rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px",backgroundColor:"#fff"});export{x as default};
1
+ import{inherits as r,createClass as e,objectSpread2 as n,classCallCheck as o,callSuper as t,defineProperty as i}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,Fragment as s,jsxs as c}from"react/jsx-runtime";import{styled as l,Box as p,Popper as u,Fade as d,MenuList as h,MenuItem as f,Typography as m}from"@mui/material";import{FilterNotes as b}from"./ui.units.js";import k,{filterPanelClasses as S}from"./base.js";import v from"./create.filter-menu.js";function x(l){var p=v(l),x=function(){function v(){var r;o(this,v);for(var e=arguments.length,u=new Array(e),d=0;d<e;d++)u[d]=arguments[d];return r=t(this,v,[].concat(u)),i(r,"renderContent",function(){switch(r.props.reason){case"searchInput":return r.renderSearchInput();case"filterButton":return a(p,{onCancel:r.props.onClose,onSubmit:function(e,n){r.props.onSubmit&&r.props.onSubmit(e,n),r.props.onClose&&r.props.onClose()}})}}),i(r,"renderSearchInput",function(){var e;if("searchInput"!==r.props.reason)return a(s,{});var o=r.getFieldsMatches(l.fields,null!==(e=r.props.keyword)&&void 0!==e?e:""),t=Object.keys(o).filter(function(r){return!!r});return c(h,{className:S.list,children:[t.map(function(e,o){var t,i=l.fields[e],s=null!==(t=null==i?void 0:i.label)&&void 0!==t?t:e.toString();return c(f,{className:S.item,onClick:function(){return r.handleClick(e)},children:[c(m,{noWrap:!0,variant:"body2",component:"span",sx:{flex:1},children:[s,' "',r.props.keyword,'"']}),(null==i?void 0:i.notes)&&a(b,n({title:"The ".concat(s," includes"),disabledSize:!0},i.notes))]},e.toString()+o)}),r.renderQuickSearch()]})}),i(r,"renderQuickSearch",function(){var e;if(!l.quickSearch)return a(s,{});var o=l.quickSearch,t=null!==(e=o.label)&&void 0!==e?e:"Quick search";return c(f,{className:S.item,onClick:r.handleQuickSearchClick,children:[c(m,{noWrap:!0,variant:"body2",component:"span",sx:{flex:1},children:[t,' "',r.props.keyword,'"']}),o.notes&&a(b,n({title:"The ".concat(t.toLocaleLowerCase()," includes"),disabledSize:!0},o.notes))]})}),i(r,"handleClick",function(e){r.props.onSubmit&&r.props.onSubmit("field",{field:e,value:r.props.keyword})}),i(r,"handleQuickSearchClick",function(){r.props.onSubmit&&r.props.onSubmit("quickSearch")}),r}return r(v,k),e(v,[{key:"render",value:function(){var r=this,e=Boolean(this.props.anchorEl)&&(!!this.props.keyword||"searchInput"!==this.props.reason);return a(u,{anchorEl:this.props.anchorEl,open:e,placement:"bottom-start",transition:!0,sx:{zIndex:1350,maxWidth:"100%"},children:function(e){var o=e.TransitionProps;return a(d,n(n({},o),{},{timeout:0,children:a(C,{className:S.root,children:r.renderContent()})}))}})}}])}();return x}var C=l(p)({borderRadius:"4px",boxShadow:"rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px",backgroundColor:"#fff"});export{x as default};
2
2
  //# sourceMappingURL=create.filter-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.filter-panel.js","sources":["../../../../src/table-grid/filter-bar/create.filter-panel.tsx"],"sourcesContent":["import React, { ComponentType, PropsWithChildren } from 'react'\r\nimport { Popper, Fade, Box, styled, MenuList, MenuItem, Typography } from '@mui/material'\r\nimport { FilterNotes } from './ui.units'\r\nimport { IFilterModel, IFilterReason, IFilterSubmitFunc, IFilterBarConfigs } from './types'\r\nimport FilterBarBase, { filterPanelClasses } from './base'\r\nimport CreateFilterMenu from './create.filter-menu'\r\n\r\nexport interface IFilterPanelState {\r\n anchorEl: HTMLElement | null\r\n reason?: IFilterReason\r\n}\r\n\r\ninterface IFilterPanelProps<T> extends IFilterPanelState, PropsWithChildren {\r\n keyword?: string\r\n onSubmit?: IFilterSubmitFunc<T>\r\n onClose?: () => void\r\n}\r\n\r\nfunction CreateFilterPanel<T>(params: IFilterBarConfigs<T>): ComponentType<IFilterPanelProps<T>> {\r\n const FilterMenuInstance = CreateFilterMenu<T>(params)\r\n // const SortMenuInstance = CreateFilterSort<T>(params)\r\n\r\n class FilterPanel extends FilterBarBase<IFilterPanelProps<T>, {}, T> {\r\n render() {\r\n const isOpen = Boolean(this.props.anchorEl) && (!!this.props.keyword || this.props.reason !== 'searchInput')\r\n return (\r\n <Popper anchorEl={this.props.anchorEl} open={isOpen} placement='bottom-start' transition sx={{ zIndex: 1350, maxWidth: '100%' }}>\r\n {({ TransitionProps }) => (\r\n <Fade {...TransitionProps} timeout={0}>\r\n <Wrapper className={filterPanelClasses.root}>{this.renderContent()}</Wrapper>\r\n </Fade>\r\n )}\r\n </Popper>\r\n )\r\n }\r\n\r\n renderContent = () => {\r\n switch (this.props.reason) {\r\n case 'searchInput':\r\n return this.renderSearchInput()\r\n case 'filterButton':\r\n return (\r\n <FilterMenuInstance\r\n onCancel={this.props.onClose}\r\n onSubmit={(f, v) => {\r\n this.props.onSubmit && this.props.onSubmit(f, v)\r\n this.props.onClose && this.props.onClose()\r\n }}\r\n />\r\n )\r\n // case 'sortButton':\r\n // return <SortMenuInstance />\r\n default:\r\n break\r\n }\r\n }\r\n\r\n renderSearchInput = () => {\r\n if (this.props.reason !== 'searchInput') return <></>\r\n const fields = this.getFieldsMatches(params.fields, this.props.keyword ?? '')\r\n const keys = Object.keys(fields).filter((x) => !!x) as (keyof IFilterModel<T>)[]\r\n return (\r\n <MenuList className={filterPanelClasses.list}>\r\n {keys.map((x, i) => {\r\n const item = params.fields[x]\r\n const label = item?.label ?? x.toString()\r\n return (\r\n <MenuItem key={x.toString() + i} className={filterPanelClasses.item} onClick={() => this.handleClick(x)}>\r\n <Typography noWrap variant='body2' component='span' sx={{ flex: 1 }}>\r\n {label} \"{this.props.keyword}\"\r\n </Typography>\r\n {item?.notes && <FilterNotes title={`The ${label} includes`} disabledSize {...item.notes} />}\r\n </MenuItem>\r\n )\r\n })}\r\n {this.renderQuickSearch()}\r\n </MenuList>\r\n )\r\n }\r\n\r\n renderQuickSearch = () => {\r\n if (!params.quickSearch) return <></>\r\n const quickSearch = params.quickSearch\r\n const label = quickSearch.label ?? 'Quick search'\r\n return (\r\n <MenuItem className={filterPanelClasses.item} onClick={this.handleQuickSearchClick}>\r\n <Typography noWrap variant='body2' component='span' sx={{ flex: 1 }}>\r\n {label} \"{this.props.keyword}\"\r\n </Typography>\r\n {quickSearch.notes && <FilterNotes title={`The ${label.toLocaleLowerCase()} includes`} disabledSize {...quickSearch.notes} />}\r\n </MenuItem>\r\n )\r\n }\r\n\r\n handleClick = (field: keyof T) => {\r\n if (!this.props.onSubmit) return\r\n this.props.onSubmit('field', { field, value: this.props.keyword })\r\n }\r\n\r\n handleQuickSearchClick = () => {\r\n if (!this.props.onSubmit) return\r\n this.props.onSubmit('quickSearch')\r\n }\r\n }\r\n return FilterPanel\r\n}\r\n\r\nexport default CreateFilterPanel\r\n\r\nconst Wrapper = styled(Box)({\r\n borderRadius: '4px',\r\n boxShadow: 'rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px',\r\n backgroundColor: '#fff'\r\n})\r\n"],"names":["CreateFilterPanel","params","FilterMenuInstance","CreateFilterMenu","FilterPanel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","reason","renderSearchInput","_jsx","onCancel","onClose","onSubmit","f","v","_this$props$keyword","fields","getFieldsMatches","keyword","keys","Object","filter","x","_jsxs","MenuList","className","filterPanelClasses","list","map","i","_item$label","item","label","toString","MenuItem","onClick","handleClick","Typography","noWrap","variant","component","sx","flex","notes","FilterNotes","_objectSpread","title","disabledSize","renderQuickSearch","_quickSearch$label","quickSearch","handleQuickSearchClick","children","toLocaleLowerCase","field","value","_inherits","FilterBarBase","_createClass","key","_this2","isOpen","Boolean","anchorEl","Popper","open","placement","transition","zIndex","maxWidth","_ref","TransitionProps","Fade","timeout","Wrapper","root","renderContent","styled","Box","borderRadius","boxShadow","backgroundColor"],"mappings":"4dAkBA,SAASA,EAAqBC,GAC5B,IAAMC,EAAqBC,EAAoBF,GAGzCG,aAAY,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAgFf,OAhFeP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,iBAcA,WACd,OAAQA,EAAKY,MAAMC,QACjB,IAAK,cACH,OAAOb,EAAKc,oBACd,IAAK,eACH,OACEC,EAAClB,GACCmB,SAAUhB,EAAKY,MAAMK,QACrBC,SAAU,SAACC,EAAGC,GACZpB,EAAKY,MAAMM,UAAYlB,EAAKY,MAAMM,SAASC,EAAGC,GAC9CpB,EAAKY,MAAMK,SAAWjB,EAAKY,MAAMK,SACnC,QAQTN,EAAAX,EAAA,qBAEmB,WAAK,IAAAqB,EACvB,GAA0B,gBAAtBrB,EAAKY,MAAMC,OAA0B,OAAOE,QAChD,IAAMO,EAAStB,EAAKuB,iBAAiB3B,EAAO0B,OAA0B,QAApBD,EAAErB,EAAKY,MAAMY,eAAOH,IAAAA,EAAAA,EAAI,IACpEI,EAAOC,OAAOD,KAAKH,GAAQK,QAAO,SAACC,GAAC,QAAOA,KACjD,OACEC,EAACC,GAASC,UAAWC,EAAmBC,eACrCR,EAAKS,KAAI,SAACN,EAAGO,GAAK,IAAAC,EACXC,EAAOzC,EAAO0B,OAAOM,GACrBU,EAAmBF,QAAdA,EAAGC,eAAAA,EAAMC,iBAAKF,EAAAA,EAAIR,EAAEW,WAC/B,OACEV,EAACW,EAAgC,CAAAT,UAAWC,EAAmBK,KAAMI,QAAS,WAAF,OAAQzC,EAAK0C,YAAYd,EAAE,YACrGC,EAACc,EAAW,CAAAC,UAAOC,QAAQ,QAAQC,UAAU,OAAOC,GAAI,CAAEC,KAAM,aAC7DV,EAAK,KAAItC,EAAKY,MAAMY,QACV,QACZa,aAAI,EAAJA,EAAMY,QAASlC,EAACmC,EAAWC,EAAA,CAACC,MAAK1C,OAAAA,OAAS4B,EAAgB,aAAEe,cAAiB,GAAAhB,EAAKY,UAJtErB,EAAEW,WAAaJ,EAOlC,IACCnC,EAAKsD,0BAGX3C,EAAAX,EAAA,qBAEmB,WAAK,IAAAuD,EACvB,IAAK3D,EAAO4D,YAAa,OAAOzC,QAChC,IAAMyC,EAAc5D,EAAO4D,YACrBlB,EAAyB,QAApBiB,EAAGC,EAAYlB,aAAK,IAAAiB,EAAAA,EAAI,eACnC,OACE1B,EAACW,EAAQ,CAACT,UAAWC,EAAmBK,KAAMI,QAASzC,EAAKyD,uBAAsBC,SAAA,CAChF7B,EAACc,EAAW,CAAAC,QAAO,EAAAC,QAAQ,QAAQC,UAAU,OAAOC,GAAI,CAAEC,KAAM,GAAGU,SAAA,CAChEpB,EAAK,KAAItC,EAAKY,MAAMY,QACV,OACZgC,EAAYP,OAASlC,EAACmC,EAAWC,EAAA,CAACC,MAAK,OAAA1C,OAAS4B,EAAMqB,oBAA8B,aAAEN,cAAY,GAAKG,EAAYP,cAGzHtC,EAAAX,EAEa,eAAA,SAAC4D,GACR5D,EAAKY,MAAMM,UAChBlB,EAAKY,MAAMM,SAAS,QAAS,CAAE0C,MAAAA,EAAOC,MAAO7D,EAAKY,MAAMY,aACzDb,EAAAX,EAAA,0BAEwB,WAClBA,EAAKY,MAAMM,UAChBlB,EAAKY,MAAMM,SAAS,kBACrBlB,CAAA,CAAA,OAAA8D,EAAA/D,EAhFuBgE,GAgFvBC,EAAAjE,EAAA,CAAA,CAAAkE,IAAA,SAAAJ,MA/ED,WAAM,IAAAK,EAAAzD,KACE0D,EAASC,QAAQ3D,KAAKG,MAAMyD,cAAgB5D,KAAKG,MAAMY,SAAiC,gBAAtBf,KAAKG,MAAMC,QACnF,OACEE,EAACuD,EAAM,CAACD,SAAU5D,KAAKG,MAAMyD,SAAUE,KAAMJ,EAAQK,UAAU,eAAeC,YAAU,EAAC1B,GAAI,CAAE2B,OAAQ,KAAMC,SAAU,QAAQjB,SAC5H,SAD4HkB,GAAA,IACzHC,EAAeD,EAAfC,gBAAe,OACjB9D,EAAC+D,EAAI3B,EAAAA,KAAK0B,GAAe,GAAA,CAAEE,QAAS,EAClCrB,SAAA3C,EAACiE,EAAO,CAACjD,UAAWC,EAAmBiD,KAAOvB,SAAAQ,EAAKgB,oBAC9C,GAIf,IAAC,IAsEH,OAAOnF,CACT,CAIA,IAAMiF,EAAUG,EAAOC,EAAPD,CAAY,CAC1BE,aAAc,MACdC,UAAW,0EACXC,gBAAiB"}
1
+ {"version":3,"file":"create.filter-panel.js","sources":["../../../../src/table-grid/filter-bar/create.filter-panel.tsx"],"sourcesContent":["import React, { ComponentType, PropsWithChildren } from 'react'\r\nimport { Popper, Fade, Box, styled, MenuList, MenuItem, Typography } from '@mui/material'\r\nimport { FilterNotes } from './ui.units'\r\nimport { IFilterModel, IFilterReason, IFilterSubmitFunc, IFilterBarConfigs } from './types'\r\nimport FilterBarBase, { filterPanelClasses } from './base'\r\nimport CreateFilterMenu from './create.filter-menu'\r\n\r\nexport interface IFilterPanelState {\r\n anchorEl: HTMLElement | null\r\n reason?: IFilterReason\r\n}\r\n\r\ninterface IFilterPanelProps<T> extends IFilterPanelState, PropsWithChildren {\r\n keyword?: string\r\n onSubmit?: IFilterSubmitFunc<T>\r\n onClose?: () => void\r\n}\r\n\r\nfunction CreateFilterPanel<T>(params: IFilterBarConfigs<T>): ComponentType<IFilterPanelProps<T>> {\r\n const FilterMenuInstance = CreateFilterMenu<T>(params)\r\n // const SortMenuInstance = CreateFilterSort<T>(params)\r\n\r\n class FilterPanel extends FilterBarBase<IFilterPanelProps<T>, {}, T> {\r\n render() {\r\n const isOpen = Boolean(this.props.anchorEl) && (!!this.props.keyword || this.props.reason !== 'searchInput')\r\n return (\r\n <Popper anchorEl={this.props.anchorEl} open={isOpen} placement='bottom-start' transition sx={{ zIndex: 1350, maxWidth: '100%' }}>\r\n {({ TransitionProps }) => (\r\n <Fade {...TransitionProps} timeout={0}>\r\n <Wrapper className={filterPanelClasses.root}>{this.renderContent()}</Wrapper>\r\n </Fade>\r\n )}\r\n </Popper>\r\n )\r\n }\r\n\r\n renderContent = () => {\r\n switch (this.props.reason) {\r\n case 'searchInput':\r\n return this.renderSearchInput()\r\n case 'filterButton':\r\n return (\r\n <FilterMenuInstance\r\n onCancel={this.props.onClose}\r\n onSubmit={(f, v) => {\r\n this.props.onSubmit && this.props.onSubmit(f, v)\r\n this.props.onClose && this.props.onClose()\r\n }}\r\n />\r\n )\r\n // case 'sortButton':\r\n // return <SortMenuInstance />\r\n default:\r\n break\r\n }\r\n }\r\n\r\n renderSearchInput = () => {\r\n if (this.props.reason !== 'searchInput') return <></>\r\n const fields = this.getFieldsMatches(params.fields, this.props.keyword ?? '')\r\n const keys = Object.keys(fields).filter((x) => !!x) as (keyof IFilterModel<T>)[]\r\n return (\r\n <MenuList className={filterPanelClasses.list}>\r\n {keys.map((x, i) => {\r\n const item = params.fields[x]\r\n const label = item?.label ?? x.toString()\r\n return (\r\n <MenuItem key={x.toString() + i} className={filterPanelClasses.item} onClick={() => this.handleClick(x)}>\r\n <Typography noWrap variant='body2' component='span' sx={{ flex: 1 }}>\r\n {label} \"{this.props.keyword}\"\r\n </Typography>\r\n {item?.notes && <FilterNotes title={`The ${label} includes`} disabledSize {...item.notes} />}\r\n </MenuItem>\r\n )\r\n })}\r\n {this.renderQuickSearch()}\r\n </MenuList>\r\n )\r\n }\r\n\r\n renderQuickSearch = () => {\r\n if (!params.quickSearch) return <></>\r\n const quickSearch = params.quickSearch\r\n const label = quickSearch.label ?? 'Quick search'\r\n return (\r\n <MenuItem className={filterPanelClasses.item} onClick={this.handleQuickSearchClick}>\r\n <Typography noWrap variant='body2' component='span' sx={{ flex: 1 }}>\r\n {label} \"{this.props.keyword}\"\r\n </Typography>\r\n {quickSearch.notes && <FilterNotes title={`The ${label.toLocaleLowerCase()} includes`} disabledSize {...quickSearch.notes} />}\r\n </MenuItem>\r\n )\r\n }\r\n\r\n handleClick = (field: keyof T) => {\r\n if (!this.props.onSubmit) return\r\n this.props.onSubmit('field', { field, value: this.props.keyword })\r\n }\r\n\r\n handleQuickSearchClick = () => {\r\n if (!this.props.onSubmit) return\r\n this.props.onSubmit('quickSearch')\r\n }\r\n }\r\n return FilterPanel\r\n}\r\n\r\nexport default CreateFilterPanel\r\n\r\nconst Wrapper = styled(Box)({\r\n borderRadius: '4px',\r\n boxShadow: 'rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px',\r\n backgroundColor: '#fff'\r\n})\r\n"],"names":["CreateFilterPanel","params","FilterMenuInstance","CreateFilterMenu","FilterPanel","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","props","reason","renderSearchInput","_jsx","onCancel","onClose","onSubmit","f","v","_this$props$keyword","fields","getFieldsMatches","keyword","keys","Object","filter","x","_jsxs","MenuList","className","filterPanelClasses","list","map","i","_item$label","item","label","toString","MenuItem","onClick","handleClick","Typography","noWrap","variant","component","sx","flex","notes","FilterNotes","_objectSpread","title","disabledSize","renderQuickSearch","_quickSearch$label","quickSearch","handleQuickSearchClick","children","toLocaleLowerCase","field","value","_inherits","FilterBarBase","_createClass","key","_this2","isOpen","Boolean","anchorEl","Popper","open","placement","transition","zIndex","maxWidth","_ref","TransitionProps","Fade","timeout","Wrapper","root","renderContent","styled","Box","borderRadius","boxShadow","backgroundColor"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as r,classCallCheck as n,callSuper as i,defineProperty as l}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as o,Fragment as a,jsx as t}from"react/jsx-runtime";import{Component as c}from"react";import{Chip as u,Typography as s}from"@mui/material";function v(v){var p=function(){function p(){var e;n(this,p);for(var r=arguments.length,c=new Array(r),d=0;d<r;d++)c[d]=arguments[d];return e=i(this,p,[].concat(c)),l(e,"renderQuickSearch",(function(){var r,n,i;if(!e.props.filterState.quickSearch)return t(a,{});var l=null!==(r=e.props.filterState.quickSearch.values)&&void 0!==r?r:[],c=Array.isArray(l)?l:[l],p=null!==(n=null===(i=v.quickSearch)||void 0===i?void 0:i.label)&&void 0!==n?n:"Quick search";return t(u,{onDelete:e.handleQuickSearchRemove,size:"small",label:o(s,{component:"span",variant:"caption",children:[p," ",null==c?void 0:c.map((function(e){return'"'.concat(e,'"')})).join(" ")]})})})),l(e,"handleRemove",(function(r){e.props.onRemove&&e.props.onRemove("field",{field:r})})),l(e,"handleQuickSearchRemove",(function(){e.props.onRemove&&e.props.onRemove("quickSearch")})),e}return e(p,c),r(p,[{key:"render",value:function(){var e,r=this,n=Object.keys(null!==(e=this.props.filterState.filter)&&void 0!==e?e:{});return o(a,{children:[this.renderQuickSearch(),n.map((function(e,n){var i,l,a,c=null===(i=r.props.filterState.filter)||void 0===i?void 0:i[e],p=v.fields[e];return t(u,{onDelete:function(){return r.handleRemove(e)},size:"small",label:o(s,{component:"span",variant:"caption",children:[null!==(l=null!==(a=null==p?void 0:p.label)&&void 0!==a?a:null==e?void 0:e.toString())&&void 0!==l?l:"Search"," ",null==c?void 0:c.map((function(e){var r;return'"'.concat(null!==(r=e.label)&&void 0!==r?r:e.value,'"')})).join(" ")]})},"".concat(null==e?void 0:e.toString()).concat(n))}))]})}}])}();return p}export{v as default};
1
+ import{inherits as e,createClass as r,classCallCheck as n,callSuper as i,defineProperty as l}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{jsxs as o,Fragment as a,jsx as t}from"react/jsx-runtime";import{Component as c}from"react";import{Chip as u,Typography as s}from"@mui/material";function v(v){var p=function(){function p(){var e;n(this,p);for(var r=arguments.length,c=new Array(r),d=0;d<r;d++)c[d]=arguments[d];return e=i(this,p,[].concat(c)),l(e,"renderQuickSearch",function(){var r,n,i;if(!e.props.filterState.quickSearch)return t(a,{});var l=null!==(r=e.props.filterState.quickSearch.values)&&void 0!==r?r:[],c=Array.isArray(l)?l:[l],p=null!==(n=null===(i=v.quickSearch)||void 0===i?void 0:i.label)&&void 0!==n?n:"Quick search";return t(u,{onDelete:e.handleQuickSearchRemove,size:"small",label:o(s,{component:"span",variant:"caption",children:[p," ",null==c?void 0:c.map(function(e){return'"'.concat(e,'"')}).join(" ")]})})}),l(e,"handleRemove",function(r){e.props.onRemove&&e.props.onRemove("field",{field:r})}),l(e,"handleQuickSearchRemove",function(){e.props.onRemove&&e.props.onRemove("quickSearch")}),e}return e(p,c),r(p,[{key:"render",value:function(){var e,r=this,n=Object.keys(null!==(e=this.props.filterState.filter)&&void 0!==e?e:{});return o(a,{children:[this.renderQuickSearch(),n.map(function(e,n){var i,l,a,c=null===(i=r.props.filterState.filter)||void 0===i?void 0:i[e],p=v.fields[e];return t(u,{onDelete:function(){return r.handleRemove(e)},size:"small",label:o(s,{component:"span",variant:"caption",children:[null!==(l=null!==(a=null==p?void 0:p.label)&&void 0!==a?a:null==e?void 0:e.toString())&&void 0!==l?l:"Search"," ",null==c?void 0:c.map(function(e){var r;return'"'.concat(null!==(r=e.label)&&void 0!==r?r:e.value,'"')}).join(" ")]})},"".concat(null==e?void 0:e.toString()).concat(n))})]})}}])}();return p}export{v as default};
2
2
  //# sourceMappingURL=create.filtered.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.filtered.js","sources":["../../../../src/table-grid/filter-bar/create.filtered.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Chip, Typography } from '@mui/material'\r\nimport { IFilterBarConfigs, IFilterState, IFilterSubmitFunc } from './types'\r\n\r\ninterface IProps<T> {\r\n filterState: IFilterState<T>\r\n onRemove?: IFilterSubmitFunc<T>\r\n}\r\n\r\nfunction CreateFiltered<T>(params: IFilterBarConfigs<T>) {\r\n class Filtered extends Component<IProps<T>> {\r\n render() {\r\n const keys = Object.keys(this.props.filterState.filter ?? {}) as (keyof T)[]\r\n return (\r\n <>\r\n {this.renderQuickSearch()}\r\n {keys.map((key, i) => {\r\n const item = this.props.filterState.filter?.[key]\r\n const config = params.fields[key]\r\n return (\r\n <Chip\r\n key={`${key?.toString()}${i}`}\r\n onDelete={() => this.handleRemove(key)}\r\n size='small'\r\n label={\r\n <Typography component='span' variant='caption'>\r\n {config?.label ?? key?.toString() ?? 'Search'} {item?.map((x) => `\"${x.label ?? x.value}\"`).join(' ')}\r\n </Typography>\r\n }\r\n />\r\n )\r\n })}\r\n </>\r\n )\r\n }\r\n\r\n renderQuickSearch = () => {\r\n if (!this.props.filterState.quickSearch) return <></>\r\n const temp = this.props.filterState.quickSearch.values ?? []\r\n const items = Array.isArray(temp) ? temp : [temp]\r\n const label = params.quickSearch?.label ?? 'Quick search'\r\n return (\r\n <Chip\r\n onDelete={this.handleQuickSearchRemove}\r\n size='small'\r\n label={\r\n <Typography component='span' variant='caption'>\r\n {label} {items?.map((x) => `\"${x}\"`).join(' ')}\r\n </Typography>\r\n }\r\n />\r\n )\r\n }\r\n\r\n handleRemove = (field: keyof T) => {\r\n if (!this.props.onRemove) return\r\n this.props.onRemove('field', { field })\r\n }\r\n\r\n handleQuickSearchRemove = () => {\r\n if (!this.props.onRemove) return\r\n this.props.onRemove('quickSearch')\r\n }\r\n }\r\n return Filtered\r\n}\r\n\r\nexport default CreateFiltered\r\n"],"names":["CreateFiltered","params","Filtered","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","_this$props$filterSta","_params$quickSearch$l","_params$quickSearch","props","filterState","quickSearch","_jsx","temp","values","items","isArray","label","Chip","onDelete","handleQuickSearchRemove","size","_jsxs","Typography","component","variant","children","map","x","join","field","onRemove","_inherits","Component","_createClass","key","value","_this$props$filterSta2","_this2","keys","Object","filter","_Fragment","renderQuickSearch","i","_this2$props$filterSt","_ref","_config$label","item","config","fields","handleRemove","toString","_x$label"],"mappings":"ySASA,SAASA,EAAkBC,GAA4B,IAC/CC,aAAS,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAoDZ,OApDYP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,qBA0BO,WAAK,IAAAY,EAAAC,EAAAC,EACvB,IAAKd,EAAKe,MAAMC,YAAYC,YAAa,OAAOC,QAChD,IAAMC,EAAgD,QAA5CP,EAAGZ,EAAKe,MAAMC,YAAYC,YAAYG,cAAMR,IAAAA,EAAAA,EAAI,GACpDS,EAAQf,MAAMgB,QAAQH,GAAQA,EAAO,CAACA,GACtCI,EAAiC,QAA5BV,EAAqB,QAArBC,EAAGhB,EAAOmB,mBAAPH,IAAkBA,OAAlBA,EAAAA,EAAoBS,aAAKV,IAAAA,EAAAA,EAAI,eAC3C,OACEK,EAACM,EAAI,CACHC,SAAUzB,EAAK0B,wBACfC,KAAK,QACLJ,MACEK,EAACC,GAAWC,UAAU,OAAOC,QAAQ,UAClCC,SAAA,CAAAT,MAAQF,eAAAA,EAAOY,KAAI,SAACC,GAAC,MAAAxB,IAAAA,OAASwB,EAAC,IAAA,IAAKC,KAAK,aAKnDxB,EAAAX,EAEc,gBAAA,SAACoC,GACTpC,EAAKe,MAAMsB,UAChBrC,EAAKe,MAAMsB,SAAS,QAAS,CAAED,MAAAA,OAChCzB,EAAAX,EAAA,2BAEyB,WACnBA,EAAKe,MAAMsB,UAChBrC,EAAKe,MAAMsB,SAAS,kBACrBrC,CAAA,CAAA,OAAAsC,EAAAvC,EApDoBwC,GAoDpBC,EAAAzC,EAAA,CAAA,CAAA0C,IAAA,SAAAC,MAnDD,WAAM,IAAAC,EAAAC,EAAAnC,KACEoC,EAAOC,OAAOD,KAAkCF,QAA9BA,EAAClC,KAAKM,MAAMC,YAAY+B,kBAAMJ,EAAAA,EAAI,CAAA,GAC1D,OACEf,EACGoB,EAAA,CAAAhB,SAAA,CAAAvB,KAAKwC,oBACLJ,EAAKZ,KAAI,SAACQ,EAAKS,GAAK,IAAAC,EAAAC,EAAAC,EACbC,EAAoCH,QAAhCA,EAAGP,EAAK7B,MAAMC,YAAY+B,kBAAMI,SAA7BA,EAAgCV,GACvCc,EAASzD,EAAO0D,OAAOf,GAC7B,OACEvB,EAACM,EAEC,CAAAC,SAAU,WAAF,OAAQmB,EAAKa,aAAahB,EAAI,EACtCd,KAAK,QACLJ,MACEK,EAACC,EAAW,CAAAC,UAAU,OAAOC,QAAQ,UAClCC,SAAA,CAAgC,QAAhCoB,UAAAC,EAAAE,aAAM,EAANA,EAAQhC,aAAK,IAAA8B,EAAAA,EAAIZ,aAAG,EAAHA,EAAKiB,kBAAUN,IAAAA,EAAAA,EAAI,SAAW,IAAAE,aAAI,EAAJA,EAAMrB,KAAI,SAACC,GAAC,IAAAyB,EAAA,MAAA,IAAAjD,OAAgBiD,QAAhBA,EAASzB,EAAEX,aAAKoC,IAAAA,EAAAA,EAAIzB,EAAEQ,MAAK,IAAA,IAAKP,KAAK,YALhGzB,OAAG+B,aAAAA,EAAAA,EAAKiB,YAAUhD,OAAGwC,GAUhC,MAGN,IAAC,IA8BH,OAAOnD,CACT"}
1
+ {"version":3,"file":"create.filtered.js","sources":["../../../../src/table-grid/filter-bar/create.filtered.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Chip, Typography } from '@mui/material'\r\nimport { IFilterBarConfigs, IFilterState, IFilterSubmitFunc } from './types'\r\n\r\ninterface IProps<T> {\r\n filterState: IFilterState<T>\r\n onRemove?: IFilterSubmitFunc<T>\r\n}\r\n\r\nfunction CreateFiltered<T>(params: IFilterBarConfigs<T>) {\r\n class Filtered extends Component<IProps<T>> {\r\n render() {\r\n const keys = Object.keys(this.props.filterState.filter ?? {}) as (keyof T)[]\r\n return (\r\n <>\r\n {this.renderQuickSearch()}\r\n {keys.map((key, i) => {\r\n const item = this.props.filterState.filter?.[key]\r\n const config = params.fields[key]\r\n return (\r\n <Chip\r\n key={`${key?.toString()}${i}`}\r\n onDelete={() => this.handleRemove(key)}\r\n size='small'\r\n label={\r\n <Typography component='span' variant='caption'>\r\n {config?.label ?? key?.toString() ?? 'Search'} {item?.map((x) => `\"${x.label ?? x.value}\"`).join(' ')}\r\n </Typography>\r\n }\r\n />\r\n )\r\n })}\r\n </>\r\n )\r\n }\r\n\r\n renderQuickSearch = () => {\r\n if (!this.props.filterState.quickSearch) return <></>\r\n const temp = this.props.filterState.quickSearch.values ?? []\r\n const items = Array.isArray(temp) ? temp : [temp]\r\n const label = params.quickSearch?.label ?? 'Quick search'\r\n return (\r\n <Chip\r\n onDelete={this.handleQuickSearchRemove}\r\n size='small'\r\n label={\r\n <Typography component='span' variant='caption'>\r\n {label} {items?.map((x) => `\"${x}\"`).join(' ')}\r\n </Typography>\r\n }\r\n />\r\n )\r\n }\r\n\r\n handleRemove = (field: keyof T) => {\r\n if (!this.props.onRemove) return\r\n this.props.onRemove('field', { field })\r\n }\r\n\r\n handleQuickSearchRemove = () => {\r\n if (!this.props.onRemove) return\r\n this.props.onRemove('quickSearch')\r\n }\r\n }\r\n return Filtered\r\n}\r\n\r\nexport default CreateFiltered\r\n"],"names":["CreateFiltered","params","Filtered","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","_this$props$filterSta","_params$quickSearch$l","_params$quickSearch","props","filterState","quickSearch","_jsx","temp","values","items","isArray","label","Chip","onDelete","handleQuickSearchRemove","size","_jsxs","Typography","component","variant","children","map","x","join","field","onRemove","_inherits","Component","_createClass","key","value","_this$props$filterSta2","_this2","keys","Object","filter","_Fragment","renderQuickSearch","i","_this2$props$filterSt","_ref","_config$label","item","config","fields","handleRemove","toString","_x$label"],"mappings":"ySASA,SAASA,EAAkBC,GAA4B,IAC/CC,aAAS,SAAAA,IAAA,IAAAC,EAAAC,OAAAF,GAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAAC,EAAAC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAAF,EAAAE,GAAAJ,UAAAI,GAoDZ,OApDYP,EAAAQ,EAAAC,KAAAV,EAAAW,GAAAA,OAAAL,IAAAM,EAAAX,EAAA,oBA0BO,WAAK,IAAAY,EAAAC,EAAAC,EACvB,IAAKd,EAAKe,MAAMC,YAAYC,YAAa,OAAOC,QAChD,IAAMC,EAAgD,QAA5CP,EAAGZ,EAAKe,MAAMC,YAAYC,YAAYG,cAAMR,IAAAA,EAAAA,EAAI,GACpDS,EAAQf,MAAMgB,QAAQH,GAAQA,EAAO,CAACA,GACtCI,EAAiC,QAA5BV,EAAqB,QAArBC,EAAGhB,EAAOmB,mBAAPH,IAAkBA,OAAlBA,EAAAA,EAAoBS,aAAKV,IAAAA,EAAAA,EAAI,eAC3C,OACEK,EAACM,EAAI,CACHC,SAAUzB,EAAK0B,wBACfC,KAAK,QACLJ,MACEK,EAACC,GAAWC,UAAU,OAAOC,QAAQ,UAClCC,SAAA,CAAAT,MAAQF,eAAAA,EAAOY,IAAI,SAACC,GAAC,MAAAxB,IAAAA,OAASwB,EAAC,IAAA,GAAKC,KAAK,YAKnDxB,EAAAX,EAEc,eAAA,SAACoC,GACTpC,EAAKe,MAAMsB,UAChBrC,EAAKe,MAAMsB,SAAS,QAAS,CAAED,MAAAA,MAChCzB,EAAAX,EAAA,0BAEyB,WACnBA,EAAKe,MAAMsB,UAChBrC,EAAKe,MAAMsB,SAAS,iBACrBrC,CAAA,CAAA,OAAAsC,EAAAvC,EApDoBwC,GAoDpBC,EAAAzC,EAAA,CAAA,CAAA0C,IAAA,SAAAC,MAnDD,WAAM,IAAAC,EAAAC,EAAAnC,KACEoC,EAAOC,OAAOD,KAAkCF,QAA9BA,EAAClC,KAAKM,MAAMC,YAAY+B,kBAAMJ,EAAAA,EAAI,CAAA,GAC1D,OACEf,EACGoB,EAAA,CAAAhB,SAAA,CAAAvB,KAAKwC,oBACLJ,EAAKZ,IAAI,SAACQ,EAAKS,GAAK,IAAAC,EAAAC,EAAAC,EACbC,EAAoCH,QAAhCA,EAAGP,EAAK7B,MAAMC,YAAY+B,kBAAMI,SAA7BA,EAAgCV,GACvCc,EAASzD,EAAO0D,OAAOf,GAC7B,OACEvB,EAACM,EAEC,CAAAC,SAAU,WAAF,OAAQmB,EAAKa,aAAahB,EAAI,EACtCd,KAAK,QACLJ,MACEK,EAACC,EAAW,CAAAC,UAAU,OAAOC,QAAQ,UAClCC,SAAA,CAAgC,QAAhCoB,UAAAC,EAAAE,aAAM,EAANA,EAAQhC,aAAK,IAAA8B,EAAAA,EAAIZ,aAAG,EAAHA,EAAKiB,kBAAUN,IAAAA,EAAAA,EAAI,SAAW,IAAAE,aAAI,EAAJA,EAAMrB,IAAI,SAACC,GAAC,IAAAyB,EAAA,MAAA,IAAAjD,OAAgBiD,QAAhBA,EAASzB,EAAEX,aAAKoC,IAAAA,EAAAA,EAAIzB,EAAEQ,MAAK,IAAA,GAAKP,KAAK,YALhGzB,OAAG+B,aAAAA,EAAAA,EAAKiB,YAAUhD,OAAGwC,GAUhC,KAGN,IAAC,IA8BH,OAAOnD,CACT"}
@@ -1,2 +1,2 @@
1
- import{jsx as e}from"react/jsx-runtime";import{styled as i,Box as t,Tooltip as n,Fade as l,IconButton as r,Typography as o}from"@mui/material";import s from"@mui/icons-material/Close";import{HelpTooltip as a}from"../../components/help-tooltip.js";var m=function(i){return e(u,{children:e(n,{title:"Remove filter",children:e(l,{in:i.visibled,unmountOnExit:!0,children:e(r,{size:"small",onClick:i.onClick,children:e(s,{fontSize:"small"})})})})})},c=function(i){return e(p,{children:i.items.map((function(i,t){return e(o,{component:"li",variant:"body2",children:i},t)}))})},d=function(i){var t,n;return e(u,{className:!0===i.disabledSize?"disabled-size":"",children:e(a,{small:!0,title:null!==(t=i.title)&&void 0!==t?t:"The search includes",children:i.renderContent?i.renderContent():e(c,{items:null!==(n=i.items)&&void 0!==n?n:[]})})})},u=i(t)({display:"inline-flex",flex:"0 0 auto",justifyContent:"center",alignItems:"center","&:not(.disabled-size)":{width:"40px",height:"40px"}}),p=i("ul")({paddingLeft:"1.7rem",marginBottom:0,li:{position:"relative",textAlign:"justify","&::before":{content:'"►"',display:"block",position:"absolute",top:"50%",right:"calc(100% + 6px)",transform:"translateY(-50%)",fontSize:"0.9em"}}});export{m as ButtonClear,d as FilterNotes};
1
+ import{jsx as e}from"react/jsx-runtime";import{styled as i,Box as t,Tooltip as n,Fade as l,IconButton as r,Typography as o}from"@mui/material";import s from"@mui/icons-material/Close";import{HelpTooltip as a}from"../../components/help-tooltip.js";var m=function(i){return e(u,{children:e(n,{title:"Remove filter",children:e(l,{in:i.visibled,unmountOnExit:!0,children:e(r,{size:"small",onClick:i.onClick,children:e(s,{fontSize:"small"})})})})})},c=function(i){return e(p,{children:i.items.map(function(i,t){return e(o,{component:"li",variant:"body2",children:i},t)})})},d=function(i){var t,n;return e(u,{className:!0===i.disabledSize?"disabled-size":"",children:e(a,{small:!0,title:null!==(t=i.title)&&void 0!==t?t:"The search includes",children:i.renderContent?i.renderContent():e(c,{items:null!==(n=i.items)&&void 0!==n?n:[]})})})},u=i(t)({display:"inline-flex",flex:"0 0 auto",justifyContent:"center",alignItems:"center","&:not(.disabled-size)":{width:"40px",height:"40px"}}),p=i("ul")({paddingLeft:"1.7rem",marginBottom:0,li:{position:"relative",textAlign:"justify","&::before":{content:'"►"',display:"block",position:"absolute",top:"50%",right:"calc(100% + 6px)",transform:"translateY(-50%)",fontSize:"0.9em"}}});export{m as ButtonClear,d as FilterNotes};
2
2
  //# sourceMappingURL=ui.units.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.units.js","sources":["../../../../src/table-grid/filter-bar/ui.units.tsx"],"sourcesContent":["import React, { FC, ReactNode } from 'react'\r\nimport { Box, Fade, IconButton, IconButtonProps, styled, Tooltip, Typography } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport HelpTooltip from '../../components/help-tooltip'\r\n\r\nexport interface IButtonClearProps {\r\n visibled?: boolean\r\n onClick: IconButtonProps['onClick']\r\n}\r\n\r\nexport const ButtonClear: FC<IButtonClearProps> = (props) => (\r\n <WrapIcon>\r\n <Tooltip title='Remove filter'>\r\n <Fade in={props.visibled} unmountOnExit>\r\n <IconButton size='small' onClick={props.onClick}>\r\n <CloseIcon fontSize='small' />\r\n </IconButton>\r\n </Fade>\r\n </Tooltip>\r\n </WrapIcon>\r\n)\r\n\r\nexport interface IFilterNotesProps {\r\n title?: string\r\n items?: string[]\r\n disabledSize?: boolean\r\n renderContent?: () => ReactNode\r\n}\r\n\r\nconst HelpTooltipContent: FC<{ items: string[] }> = (props) => (\r\n <WrapList>\r\n {props.items.map((item, index) => (\r\n <Typography key={index} component='li' variant='body2'>\r\n {item}\r\n </Typography>\r\n ))}\r\n </WrapList>\r\n)\r\n\r\nexport const FilterNotes: FC<IFilterNotesProps> = (props) => (\r\n <WrapIcon className={props.disabledSize === true ? 'disabled-size' : ''}>\r\n <HelpTooltip small title={props.title ?? 'The search includes'}>\r\n {props.renderContent ? props.renderContent() : <HelpTooltipContent items={props.items ?? []} />}\r\n </HelpTooltip>\r\n </WrapIcon>\r\n)\r\nconst WrapIcon = styled(Box)({\r\n display: 'inline-flex',\r\n flex: '0 0 auto',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n '&:not(.disabled-size)': {\r\n width: '40px',\r\n height: '40px'\r\n }\r\n})\r\n\r\nconst WrapList = styled('ul')({\r\n paddingLeft: '1.7rem',\r\n marginBottom: 0,\r\n li: {\r\n position: 'relative',\r\n textAlign: 'justify',\r\n '&::before': {\r\n content: '\"►\"',\r\n display: 'block',\r\n position: 'absolute',\r\n top: '50%',\r\n right: 'calc(100% + 6px)',\r\n transform: 'translateY(-50%)',\r\n fontSize: '0.9em'\r\n }\r\n }\r\n})\r\n"],"names":["ButtonClear","props","_jsx","WrapIcon","children","Tooltip","title","Fade","in","visibled","unmountOnExit","IconButton","size","onClick","CloseIcon","fontSize","HelpTooltipContent","WrapList","items","map","item","index","Typography","component","variant","FilterNotes","_props$title","_props$items","className","disabledSize","HelpTooltip","small","renderContent","styled","Box","display","flex","justifyContent","alignItems","width","height","paddingLeft","marginBottom","li","position","textAlign","content","top","right","transform"],"mappings":"2PAUaA,EAAqC,SAACC,GAAK,OACtDC,EAACC,EAAQ,CAAAC,SACPF,EAACG,EAAO,CAACC,MAAM,gBAAeF,SAC5BF,EAACK,EAAK,CAAAC,GAAIP,EAAMQ,SAAUC,eAAa,EAAAN,SACrCF,EAACS,EAAW,CAAAC,KAAK,QAAQC,QAASZ,EAAMY,iBACtCX,EAACY,EAAU,CAAAC,SAAS,iBAIjB,EAUPC,EAA8C,SAACf,GAAK,OACxDC,EAACe,YACEhB,EAAMiB,MAAMC,KAAI,SAACC,EAAMC,GAAK,OAC3BnB,EAACoB,EAAU,CAAaC,UAAU,KAAKC,QAAQ,QAC5CpB,SAAAgB,GADcC,EAGlB,KACQ,EAGAI,EAAqC,SAACxB,GAAK,IAAAyB,EAAAC,EAAA,OACtDzB,EAACC,EAAQ,CAACyB,WAAkC,IAAvB3B,EAAM4B,aAAwB,gBAAkB,GAAEzB,SACrEF,EAAC4B,GAAYC,OAAK,EAACzB,MAAkB,QAAboB,EAAEzB,EAAMK,aAAK,IAAAoB,EAAAA,EAAI,sBACtCtB,SAAAH,EAAM+B,cAAgB/B,EAAM+B,gBAAkB9B,EAACc,EAAkB,CAACE,MAAkBS,QAAbA,EAAE1B,EAAMiB,aAAKS,IAAAA,EAAAA,EAAI,QAElF,EAEPxB,EAAW8B,EAAOC,EAAPD,CAAY,CAC3BE,QAAS,cACTC,KAAM,WACNC,eAAgB,SAChBC,WAAY,SACZ,wBAAyB,CACvBC,MAAO,OACPC,OAAQ,UAINvB,EAAWgB,EAAO,KAAPA,CAAa,CAC5BQ,YAAa,SACbC,aAAc,EACdC,GAAI,CACFC,SAAU,WACVC,UAAW,UACX,YAAa,CACXC,QAAS,MACTX,QAAS,QACTS,SAAU,WACVG,IAAK,MACLC,MAAO,mBACPC,UAAW,mBACXlC,SAAU"}
1
+ {"version":3,"file":"ui.units.js","sources":["../../../../src/table-grid/filter-bar/ui.units.tsx"],"sourcesContent":["import React, { FC, ReactNode } from 'react'\r\nimport { Box, Fade, IconButton, IconButtonProps, styled, Tooltip, Typography } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport HelpTooltip from '../../components/help-tooltip'\r\n\r\nexport interface IButtonClearProps {\r\n visibled?: boolean\r\n onClick: IconButtonProps['onClick']\r\n}\r\n\r\nexport const ButtonClear: FC<IButtonClearProps> = (props) => (\r\n <WrapIcon>\r\n <Tooltip title='Remove filter'>\r\n <Fade in={props.visibled} unmountOnExit>\r\n <IconButton size='small' onClick={props.onClick}>\r\n <CloseIcon fontSize='small' />\r\n </IconButton>\r\n </Fade>\r\n </Tooltip>\r\n </WrapIcon>\r\n)\r\n\r\nexport interface IFilterNotesProps {\r\n title?: string\r\n items?: string[]\r\n disabledSize?: boolean\r\n renderContent?: () => ReactNode\r\n}\r\n\r\nconst HelpTooltipContent: FC<{ items: string[] }> = (props) => (\r\n <WrapList>\r\n {props.items.map((item, index) => (\r\n <Typography key={index} component='li' variant='body2'>\r\n {item}\r\n </Typography>\r\n ))}\r\n </WrapList>\r\n)\r\n\r\nexport const FilterNotes: FC<IFilterNotesProps> = (props) => (\r\n <WrapIcon className={props.disabledSize === true ? 'disabled-size' : ''}>\r\n <HelpTooltip small title={props.title ?? 'The search includes'}>\r\n {props.renderContent ? props.renderContent() : <HelpTooltipContent items={props.items ?? []} />}\r\n </HelpTooltip>\r\n </WrapIcon>\r\n)\r\nconst WrapIcon = styled(Box)({\r\n display: 'inline-flex',\r\n flex: '0 0 auto',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n '&:not(.disabled-size)': {\r\n width: '40px',\r\n height: '40px'\r\n }\r\n})\r\n\r\nconst WrapList = styled('ul')({\r\n paddingLeft: '1.7rem',\r\n marginBottom: 0,\r\n li: {\r\n position: 'relative',\r\n textAlign: 'justify',\r\n '&::before': {\r\n content: '\"►\"',\r\n display: 'block',\r\n position: 'absolute',\r\n top: '50%',\r\n right: 'calc(100% + 6px)',\r\n transform: 'translateY(-50%)',\r\n fontSize: '0.9em'\r\n }\r\n }\r\n})\r\n"],"names":["ButtonClear","props","_jsx","WrapIcon","children","Tooltip","title","Fade","in","visibled","unmountOnExit","IconButton","size","onClick","CloseIcon","fontSize","HelpTooltipContent","WrapList","items","map","item","index","Typography","component","variant","FilterNotes","_props$title","_props$items","className","disabledSize","HelpTooltip","small","renderContent","styled","Box","display","flex","justifyContent","alignItems","width","height","paddingLeft","marginBottom","li","position","textAlign","content","top","right","transform"],"mappings":"2PAUaA,EAAqC,SAACC,GAAK,OACtDC,EAACC,EAAQ,CAAAC,SACPF,EAACG,EAAO,CAACC,MAAM,gBAAeF,SAC5BF,EAACK,EAAK,CAAAC,GAAIP,EAAMQ,SAAUC,eAAa,EAAAN,SACrCF,EAACS,EAAW,CAAAC,KAAK,QAAQC,QAASZ,EAAMY,iBACtCX,EAACY,EAAU,CAAAC,SAAS,iBAIjB,EAUPC,EAA8C,SAACf,GAAK,OACxDC,EAACe,YACEhB,EAAMiB,MAAMC,IAAI,SAACC,EAAMC,GAAK,OAC3BnB,EAACoB,EAAU,CAAaC,UAAU,KAAKC,QAAQ,QAC5CpB,SAAAgB,GADcC,EAGlB,IACQ,EAGAI,EAAqC,SAACxB,GAAK,IAAAyB,EAAAC,EAAA,OACtDzB,EAACC,EAAQ,CAACyB,WAAkC,IAAvB3B,EAAM4B,aAAwB,gBAAkB,GAAEzB,SACrEF,EAAC4B,GAAYC,OAAK,EAACzB,MAAkB,QAAboB,EAAEzB,EAAMK,aAAK,IAAAoB,EAAAA,EAAI,sBACtCtB,SAAAH,EAAM+B,cAAgB/B,EAAM+B,gBAAkB9B,EAACc,EAAkB,CAACE,MAAkBS,QAAbA,EAAE1B,EAAMiB,aAAKS,IAAAA,EAAAA,EAAI,QAElF,EAEPxB,EAAW8B,EAAOC,EAAPD,CAAY,CAC3BE,QAAS,cACTC,KAAM,WACNC,eAAgB,SAChBC,WAAY,SACZ,wBAAyB,CACvBC,MAAO,OACPC,OAAQ,UAINvB,EAAWgB,EAAO,KAAPA,CAAa,CAC5BQ,YAAa,SACbC,aAAc,EACdC,GAAI,CACFC,SAAU,WACVC,UAAW,UACX,YAAa,CACXC,QAAS,MACTX,QAAS,QACTS,SAAU,WACVG,IAAK,MACLC,MAAO,mBACPC,UAAW,mBACXlC,SAAU"}
@@ -1,2 +1,2 @@
1
- var e={page:0,pageSize:25},n={root:"TableGrid-root",content:"TableGrid-content",contentPosition:"TableGrid-contentPosition",contentInner:"TableGrid-contentInner",loading:"TableGrid-loading",overlay:"TableGrid-overlay",item:"TableGrid-item",actions:"TableGrid-actions",noItems:"TableGrid-noItems"};export{e as defaultPagination,n as tableGridClasses};
1
+ var e={page:0,pageSize:25};export{e as defaultPagination};
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../src/table-grid/helpers.tsx"],"sourcesContent":["import { IPaginationModel } from './types'\r\n\r\nexport const defaultPagination: IPaginationModel = { page: 0, pageSize: 25 }\r\n\r\nexport const tableGridClasses = {\r\n root: 'TableGrid-root',\r\n content: 'TableGrid-content',\r\n contentPosition: 'TableGrid-contentPosition',\r\n contentInner: 'TableGrid-contentInner',\r\n loading: 'TableGrid-loading',\r\n overlay: 'TableGrid-overlay',\r\n item: 'TableGrid-item',\r\n actions: 'TableGrid-actions',\r\n noItems: 'TableGrid-noItems'\r\n}\r\n"],"names":["defaultPagination","page","pageSize","tableGridClasses","root","content","contentPosition","contentInner","loading","overlay","item","actions","noItems"],"mappings":"AAEO,IAAMA,EAAsC,CAAEC,KAAM,EAAGC,SAAU,IAE3DC,EAAmB,CAC9BC,KAAM,iBACNC,QAAS,oBACTC,gBAAiB,4BACjBC,aAAc,yBACdC,QAAS,oBACTC,QAAS,oBACTC,KAAM,iBACNC,QAAS,oBACTC,QAAS"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../src/table-grid/helpers.tsx"],"sourcesContent":["import { IPaginationModel } from './types'\r\n\r\nexport const defaultPagination: IPaginationModel = { page: 0, pageSize: 25 }\r\n"],"names":["defaultPagination","page","pageSize"],"mappings":"AAEO,IAAMA,EAAsC,CAAEC,KAAM,EAAGC,SAAU"}
@@ -1,2 +1,2 @@
1
- import{inherits as r,createClass as o,classCallCheck as e,callSuper as i,defineProperty as t,toConsumableArray as n,objectSpread2 as a}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as s,jsxs as p}from"react/jsx-runtime";import{Component as c}from"react";import{styled as m,Box as u,colors as d,ListItem as f,IconButton as h,List as v,ListItemButton as g,ListItemIcon as y,ListItemText as b}from"@mui/material";import A from"@mui/icons-material/Edit";import C from"@mui/icons-material/MoreVert";import I from"@mui/icons-material/DeleteOutline";import k from"../api-context/popover-global.js";import{mapGlobalModalContext as x}from"../api-context/global-modal.js";var E={Edit:l(A,{fontSize:"small",color:"primary"}),Delete:l(I,{fontSize:"small",color:"error"})};function P(){var m=function(){function m(){var r;e(this,m);for(var o=arguments.length,c=new Array(o),u=0;u<o;u++)c[u]=arguments[u];return r=i(this,m,[].concat(c)),t(r,"isVisible",(function(){var o=r.props.menuList,e=[].concat(n(r.singleOrArrayToArray(null==o?void 0:o.before)),n(r.singleOrArrayToArray(null==o?void 0:o.after)));return!!r.props.formEdit||!!r.props.formDelete||e.length>0})),t(r,"singleOrArrayToArray",(function(r){return r?Array.isArray(r)?r:[r]:[]})),t(r,"renderItems",(function(o){return o?(Array.isArray(o)?o:[o]).map((function(o,e){var i=o.name+e,t=o.override;if(t)return l(t,{onClose:k.Api.close},i);var n=o.listItemPropsGetter?o.listItemPropsGetter(r.props.value):o.listItemProps;return l(M,a(a({disablePadding:!0,onClick:function(e){!1!==o.closableOnClick&&k.Api.close(),o.onClick&&o.onClick(e,r.props.value)}},n),{},{children:p(g,{children:[l(y,{children:o.icon}),l(b,{primary:o.name})]})}),i)})):l(s,{})})),t(r,"renderItemWithForm",(function(o,e,i){return e?x((function(t){return l(M,{disablePadding:!0,onClick:function(){k.Api.close(),t.show(a({renderContent:function(){return e(r.props.value)}},i))},children:p(g,{children:[l(y,{children:E[o]}),l(b,{primary:o})]})})})):l(s,{})})),r}return r(m,c),o(m,[{key:"render",value:function(){var r=this;return this.isVisible()?l(T,{children:l(h,{size:"small",onClick:function(o){var e,i,t;k.Api.open({anchorEl:o.currentTarget,popoverProps:{anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},content:p(v,{children:[r.renderItems(null===(e=r.props.menuList)||void 0===e?void 0:e.before),r.renderItemWithForm("Edit",r.props.formEdit,r.props.buttonEditConfig),r.renderItemWithForm("Delete",r.props.formDelete,null!==(i=r.props.buttonEditConfig)&&void 0!==i?i:{backdropActivated:!0}),r.renderItems(null===(t=r.props.menuList)||void 0===t?void 0:t.after)]})})},children:l(C,{fontSize:"small"})})}):l(s,{})}}])}();return m}var T=m(u)({background:d.common.white,borderRadius:"6px","& > .MuiButtonBase-root":{borderRadius:"6px"}}),M=m(f)({minWidth:"150px",".MuiListItemIcon-root":{minWidth:"40px"},".MuiListItemText-root .MuiTypography-root":{color:d.grey[800]},"&:hover":{".MuiListItemText-root .MuiTypography-root":{background:d.grey[100],color:d.grey[900]}}});export{P as CreateTableGridItemActions};
1
+ import{inherits as r,createClass as o,classCallCheck as e,callSuper as i,defineProperty as t,toConsumableArray as n,objectSpread2 as a}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as l,Fragment as s,jsxs as p}from"react/jsx-runtime";import{Component as c}from"react";import{styled as m,Box as u,colors as d,ListItem as f,IconButton as h,List as v,ListItemButton as g,ListItemIcon as y,ListItemText as b}from"@mui/material";import A from"@mui/icons-material/Edit";import C from"@mui/icons-material/MoreVert";import I from"@mui/icons-material/DeleteOutline";import k from"../api-context/popover-global.js";import{mapGlobalModalContext as x}from"../api-context/global-modal.js";var E={Edit:l(A,{fontSize:"small",color:"primary"}),Delete:l(I,{fontSize:"small",color:"error"})};function P(){var m=function(){function m(){var r;e(this,m);for(var o=arguments.length,c=new Array(o),u=0;u<o;u++)c[u]=arguments[u];return r=i(this,m,[].concat(c)),t(r,"isVisible",function(){var o=r.props.menuList,e=[].concat(n(r.singleOrArrayToArray(null==o?void 0:o.before)),n(r.singleOrArrayToArray(null==o?void 0:o.after)));return!!r.props.formEdit||!!r.props.formDelete||e.length>0}),t(r,"singleOrArrayToArray",function(r){return r?Array.isArray(r)?r:[r]:[]}),t(r,"renderItems",function(o){return o?(Array.isArray(o)?o:[o]).map(function(o,e){var i=o.name+e,t=o.override;if(t)return l(t,{onClose:k.Api.close},i);var n=o.listItemPropsGetter?o.listItemPropsGetter(r.props.value):o.listItemProps;return l(M,a(a({disablePadding:!0,onClick:function(e){!1!==o.closableOnClick&&k.Api.close(),o.onClick&&o.onClick(e,r.props.value)}},n),{},{children:p(g,{children:[l(y,{children:o.icon}),l(b,{primary:o.name})]})}),i)}):l(s,{})}),t(r,"renderItemWithForm",function(o,e,i){return e?x(function(t){return l(M,{disablePadding:!0,onClick:function(){k.Api.close(),t.show(a({renderContent:function(){return e(r.props.value)}},i))},children:p(g,{children:[l(y,{children:E[o]}),l(b,{primary:o})]})})}):l(s,{})}),r}return r(m,c),o(m,[{key:"render",value:function(){var r=this;return this.isVisible()?l(T,{children:l(h,{size:"small",onClick:function(o){var e,i,t;k.Api.open({anchorEl:o.currentTarget,popoverProps:{anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"}},content:p(v,{children:[r.renderItems(null===(e=r.props.menuList)||void 0===e?void 0:e.before),r.renderItemWithForm("Edit",r.props.formEdit,r.props.buttonEditConfig),r.renderItemWithForm("Delete",r.props.formDelete,null!==(i=r.props.buttonEditConfig)&&void 0!==i?i:{backdropActivated:!0}),r.renderItems(null===(t=r.props.menuList)||void 0===t?void 0:t.after)]})})},children:l(C,{fontSize:"small"})})}):l(s,{})}}])}();return m}var T=m(u)({background:d.common.white,borderRadius:"6px","& > .MuiButtonBase-root":{borderRadius:"6px"}}),M=m(f)({minWidth:"150px",".MuiListItemIcon-root":{minWidth:"40px"},".MuiListItemText-root .MuiTypography-root":{color:d.grey[800]},"&:hover":{".MuiListItemText-root .MuiTypography-root":{background:d.grey[100],color:d.grey[900]}}});export{P as CreateTableGridItemActions};
2
2
  //# sourceMappingURL=item-actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"item-actions.js","sources":["../../../src/table-grid/item-actions.tsx"],"sourcesContent":["import React, { Component, ComponentType, ReactNode } from 'react'\r\nimport { Box, colors, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemProps, ListItemText, styled } from '@mui/material'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport MoreVertIcon from '@mui/icons-material/MoreVert'\r\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'\r\nimport { ClosePopover, GlobalModalState, mapGlobalModalContext, PopoverGlobal } from '../api-context'\r\n\r\nexport type ITableGridItemActionType = 'Edit' | 'Delete'\r\n\r\nconst mapIcons: { [key in ITableGridItemActionType]: ReactNode } = {\r\n Edit: <EditIcon fontSize='small' color='primary' />,\r\n Delete: <DeleteOutlineIcon fontSize='small' color='error' />\r\n}\r\n\r\nexport interface ITableGridItemActionsBaseProps<T> {\r\n value: T\r\n}\r\n\r\nexport type IActionFormGetter<T> = (value: T) => React.ReactNode\r\n\r\nexport interface IActionMenuItemDef<T> {\r\n name: string\r\n icon?: ReactNode\r\n /** Whether this item should trigger a close action when clicked. @default true */\r\n closableOnClick?: boolean\r\n /** Handler called when item is clicked */\r\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>, value: T) => void\r\n listItemProps?: ListItemProps\r\n listItemPropsGetter?: (value: T) => ListItemProps & { [key: string]: any }\r\n /**\r\n * Optional custom ReactNode to override the entire ListItem UI.\r\n * If provided, this will be rendered instead of the default ListItem structure\r\n * (icon + text + click behavior).\r\n */\r\n override?: ComponentType<{ onClose?: ClosePopover }>\r\n}\r\n\r\nexport interface TableGridItemActionsConfig<T> {\r\n formEdit?: IActionFormGetter<T>\r\n formDelete?: IActionFormGetter<T>\r\n buttonEditConfig?: GlobalModalState\r\n buttonDeleteConfig?: GlobalModalState\r\n menuList?: {\r\n before?: SingleOrArray<IActionMenuItemDef<T>>\r\n after?: SingleOrArray<IActionMenuItemDef<T>>\r\n }\r\n}\r\n\r\nexport interface ITableGridItemActionsProps<T> extends ITableGridItemActionsBaseProps<T>, TableGridItemActionsConfig<T> {}\r\n\r\nexport function CreateTableGridItemActions<T>() {\r\n class TableGridItemActions extends Component<ITableGridItemActionsProps<T>> {\r\n render() {\r\n if (!this.isVisible()) return <></>\r\n return (\r\n <Wrap>\r\n <IconButton\r\n size='small'\r\n onClick={(e) => {\r\n PopoverGlobal.Api.open({\r\n anchorEl: e.currentTarget,\r\n popoverProps: { anchorOrigin: { vertical: 'top', horizontal: 'right' }, transformOrigin: { vertical: 'top', horizontal: 'right' } },\r\n content: (\r\n <List>\r\n {this.renderItems(this.props.menuList?.before)}\r\n {this.renderItemWithForm('Edit', this.props.formEdit, this.props.buttonEditConfig)}\r\n {this.renderItemWithForm('Delete', this.props.formDelete, this.props.buttonEditConfig ?? { backdropActivated: true })}\r\n {this.renderItems(this.props.menuList?.after)}\r\n </List>\r\n )\r\n })\r\n }}\r\n >\r\n <MoreVertIcon fontSize='small' />\r\n </IconButton>\r\n </Wrap>\r\n )\r\n }\r\n\r\n isVisible = () => {\r\n const { menuList } = this.props\r\n const list = [...this.singleOrArrayToArray(menuList?.before), ...this.singleOrArrayToArray(menuList?.after)]\r\n return !!this.props.formEdit || !!this.props.formDelete || list.length > 0\r\n }\r\n\r\n singleOrArrayToArray = (value?: SingleOrArray<IActionMenuItemDef<T>>): IActionMenuItemDef<T>[] => {\r\n if (!value) return []\r\n return Array.isArray(value) ? value : [value]\r\n }\r\n\r\n renderItems = (value?: SingleOrArray<IActionMenuItemDef<T>>) => {\r\n if (!value) return <></>\r\n const list = Array.isArray(value) ? value : [value]\r\n return list.map((item, index) => {\r\n const key = item.name + index\r\n const { override: Override } = item\r\n if (Override) return <Override key={key} onClose={PopoverGlobal.Api.close} />\r\n const itemProps = item.listItemPropsGetter ? item.listItemPropsGetter(this.props.value) : item.listItemProps\r\n return (\r\n <ListItemCustom\r\n key={key}\r\n disablePadding\r\n onClick={(e) => {\r\n if (item.closableOnClick !== false) PopoverGlobal.Api.close()\r\n item.onClick && item.onClick(e, this.props.value)\r\n }}\r\n {...itemProps}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{item.icon}</ListItemIcon>\r\n <ListItemText primary={item.name} />\r\n </ListItemButton>\r\n </ListItemCustom>\r\n )\r\n })\r\n }\r\n\r\n renderItemWithForm = (name: ITableGridItemActionType, form?: IActionFormGetter<T>, globalState?: GlobalModalState) => {\r\n if (!form) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <ListItemCustom\r\n disablePadding\r\n onClick={() => {\r\n PopoverGlobal.Api.close()\r\n context.show({ renderContent: () => form(this.props.value), ...globalState })\r\n }}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{mapIcons[name]}</ListItemIcon>\r\n <ListItemText primary={name} />\r\n </ListItemButton>\r\n </ListItemCustom>\r\n ))\r\n }\r\n }\r\n return TableGridItemActions\r\n}\r\n\r\nconst Wrap = styled(Box)({\r\n background: colors.common.white,\r\n borderRadius: '6px',\r\n '& > .MuiButtonBase-root': {\r\n borderRadius: '6px'\r\n }\r\n})\r\n\r\nconst ListItemCustom = styled(ListItem)({\r\n minWidth: '150px',\r\n '.MuiListItemIcon-root': {\r\n minWidth: '40px'\r\n },\r\n '.MuiListItemText-root .MuiTypography-root': {\r\n color: colors.grey[800]\r\n },\r\n '&:hover': {\r\n '.MuiListItemText-root .MuiTypography-root': {\r\n background: colors.grey[100],\r\n color: colors.grey[900]\r\n }\r\n }\r\n})\r\n"],"names":["mapIcons","Edit","_jsx","EditIcon","fontSize","color","Delete","DeleteOutlineIcon","CreateTableGridItemActions","TableGridItemActions","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","menuList","props","list","_toConsumableArray","singleOrArrayToArray","before","after","formEdit","formDelete","value","isArray","map","item","index","key","name","Override","override","onClose","PopoverGlobal","Api","close","itemProps","listItemPropsGetter","listItemProps","ListItemCustom","_objectSpread","disablePadding","onClick","e","closableOnClick","children","_jsxs","ListItemButton","ListItemIcon","icon","ListItemText","primary","form","globalState","mapGlobalModalContext","context","show","renderContent","_inherits","Component","_createClass","_this2","isVisible","Wrap","IconButton","size","_this2$props$menuList","_this2$props$buttonEd","_this2$props$menuList2","open","anchorEl","currentTarget","popoverProps","anchorOrigin","vertical","horizontal","transformOrigin","content","List","renderItems","renderItemWithForm","buttonEditConfig","backdropActivated","MoreVertIcon","styled","Box","background","colors","common","white","borderRadius","ListItem","minWidth","grey"],"mappings":"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"}
1
+ {"version":3,"file":"item-actions.js","sources":["../../../src/table-grid/item-actions.tsx"],"sourcesContent":["import React, { Component, ComponentType, ReactNode } from 'react'\r\nimport { Box, colors, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemProps, ListItemText, styled } from '@mui/material'\r\nimport EditIcon from '@mui/icons-material/Edit'\r\nimport MoreVertIcon from '@mui/icons-material/MoreVert'\r\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'\r\nimport { ClosePopover, GlobalModalState, mapGlobalModalContext, PopoverGlobal } from '../api-context'\r\n\r\nexport type ITableGridItemActionType = 'Edit' | 'Delete'\r\n\r\nconst mapIcons: { [key in ITableGridItemActionType]: ReactNode } = {\r\n Edit: <EditIcon fontSize='small' color='primary' />,\r\n Delete: <DeleteOutlineIcon fontSize='small' color='error' />\r\n}\r\n\r\nexport interface ITableGridItemActionsBaseProps<T> {\r\n value: T\r\n}\r\n\r\nexport type IActionFormGetter<T> = (value: T) => React.ReactNode\r\n\r\nexport interface IActionMenuItemDef<T> {\r\n name: string\r\n icon?: ReactNode\r\n /** Whether this item should trigger a close action when clicked. @default true */\r\n closableOnClick?: boolean\r\n /** Handler called when item is clicked */\r\n onClick?: (event: React.MouseEvent<HTMLLIElement, MouseEvent>, value: T) => void\r\n listItemProps?: ListItemProps\r\n listItemPropsGetter?: (value: T) => ListItemProps & { [key: string]: any }\r\n /**\r\n * Optional custom ReactNode to override the entire ListItem UI.\r\n * If provided, this will be rendered instead of the default ListItem structure\r\n * (icon + text + click behavior).\r\n */\r\n override?: ComponentType<{ onClose?: ClosePopover }>\r\n}\r\n\r\nexport interface TableGridItemActionsConfig<T> {\r\n formEdit?: IActionFormGetter<T>\r\n formDelete?: IActionFormGetter<T>\r\n buttonEditConfig?: GlobalModalState\r\n buttonDeleteConfig?: GlobalModalState\r\n menuList?: {\r\n before?: SingleOrArray<IActionMenuItemDef<T>>\r\n after?: SingleOrArray<IActionMenuItemDef<T>>\r\n }\r\n}\r\n\r\nexport interface ITableGridItemActionsProps<T> extends ITableGridItemActionsBaseProps<T>, TableGridItemActionsConfig<T> {}\r\n\r\nexport function CreateTableGridItemActions<T>() {\r\n class TableGridItemActions extends Component<ITableGridItemActionsProps<T>> {\r\n render() {\r\n if (!this.isVisible()) return <></>\r\n return (\r\n <Wrap>\r\n <IconButton\r\n size='small'\r\n onClick={(e) => {\r\n PopoverGlobal.Api.open({\r\n anchorEl: e.currentTarget,\r\n popoverProps: { anchorOrigin: { vertical: 'top', horizontal: 'right' }, transformOrigin: { vertical: 'top', horizontal: 'right' } },\r\n content: (\r\n <List>\r\n {this.renderItems(this.props.menuList?.before)}\r\n {this.renderItemWithForm('Edit', this.props.formEdit, this.props.buttonEditConfig)}\r\n {this.renderItemWithForm('Delete', this.props.formDelete, this.props.buttonEditConfig ?? { backdropActivated: true })}\r\n {this.renderItems(this.props.menuList?.after)}\r\n </List>\r\n )\r\n })\r\n }}\r\n >\r\n <MoreVertIcon fontSize='small' />\r\n </IconButton>\r\n </Wrap>\r\n )\r\n }\r\n\r\n isVisible = () => {\r\n const { menuList } = this.props\r\n const list = [...this.singleOrArrayToArray(menuList?.before), ...this.singleOrArrayToArray(menuList?.after)]\r\n return !!this.props.formEdit || !!this.props.formDelete || list.length > 0\r\n }\r\n\r\n singleOrArrayToArray = (value?: SingleOrArray<IActionMenuItemDef<T>>): IActionMenuItemDef<T>[] => {\r\n if (!value) return []\r\n return Array.isArray(value) ? value : [value]\r\n }\r\n\r\n renderItems = (value?: SingleOrArray<IActionMenuItemDef<T>>) => {\r\n if (!value) return <></>\r\n const list = Array.isArray(value) ? value : [value]\r\n return list.map((item, index) => {\r\n const key = item.name + index\r\n const { override: Override } = item\r\n if (Override) return <Override key={key} onClose={PopoverGlobal.Api.close} />\r\n const itemProps = item.listItemPropsGetter ? item.listItemPropsGetter(this.props.value) : item.listItemProps\r\n return (\r\n <ListItemCustom\r\n key={key}\r\n disablePadding\r\n onClick={(e) => {\r\n if (item.closableOnClick !== false) PopoverGlobal.Api.close()\r\n item.onClick && item.onClick(e, this.props.value)\r\n }}\r\n {...itemProps}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{item.icon}</ListItemIcon>\r\n <ListItemText primary={item.name} />\r\n </ListItemButton>\r\n </ListItemCustom>\r\n )\r\n })\r\n }\r\n\r\n renderItemWithForm = (name: ITableGridItemActionType, form?: IActionFormGetter<T>, globalState?: GlobalModalState) => {\r\n if (!form) return <></>\r\n return mapGlobalModalContext((context) => (\r\n <ListItemCustom\r\n disablePadding\r\n onClick={() => {\r\n PopoverGlobal.Api.close()\r\n context.show({ renderContent: () => form(this.props.value), ...globalState })\r\n }}\r\n >\r\n <ListItemButton>\r\n <ListItemIcon>{mapIcons[name]}</ListItemIcon>\r\n <ListItemText primary={name} />\r\n </ListItemButton>\r\n </ListItemCustom>\r\n ))\r\n }\r\n }\r\n return TableGridItemActions\r\n}\r\n\r\nconst Wrap = styled(Box)({\r\n background: colors.common.white,\r\n borderRadius: '6px',\r\n '& > .MuiButtonBase-root': {\r\n borderRadius: '6px'\r\n }\r\n})\r\n\r\nconst ListItemCustom = styled(ListItem)({\r\n minWidth: '150px',\r\n '.MuiListItemIcon-root': {\r\n minWidth: '40px'\r\n },\r\n '.MuiListItemText-root .MuiTypography-root': {\r\n color: colors.grey[800]\r\n },\r\n '&:hover': {\r\n '.MuiListItemText-root .MuiTypography-root': {\r\n background: colors.grey[100],\r\n color: colors.grey[900]\r\n }\r\n }\r\n})\r\n"],"names":["mapIcons","Edit","_jsx","EditIcon","fontSize","color","Delete","DeleteOutlineIcon","CreateTableGridItemActions","TableGridItemActions","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","this","concat","_defineProperty","menuList","props","list","_toConsumableArray","singleOrArrayToArray","before","after","formEdit","formDelete","value","isArray","map","item","index","key","name","Override","override","onClose","PopoverGlobal","Api","close","itemProps","listItemPropsGetter","listItemProps","ListItemCustom","_objectSpread","disablePadding","onClick","e","closableOnClick","children","_jsxs","ListItemButton","ListItemIcon","icon","ListItemText","primary","form","globalState","mapGlobalModalContext","context","show","renderContent","_inherits","Component","_createClass","_this2","isVisible","Wrap","IconButton","size","_this2$props$menuList","_this2$props$buttonEd","_this2$props$menuList2","open","anchorEl","currentTarget","popoverProps","anchorOrigin","vertical","horizontal","transformOrigin","content","List","renderItems","renderItemWithForm","buttonEditConfig","backdropActivated","MoreVertIcon","styled","Box","background","colors","common","white","borderRadius","ListItem","minWidth","grey"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{defineProperty as t}from"../../_virtual/_rollupPluginBabelHelpers.js";import{styled as e,Box as n,colors as o,tablePaginationClasses as i,alpha as a}from"@mui/material";var r={root:"TableGrid-root",content:"TableGrid-content",contentPosition:"TableGrid-contentPosition",contentInner:"TableGrid-contentInner",filterBarWrap:"TableGrid-filterBarWrap",loading:"TableGrid-loading",overlay:"TableGrid-overlay",item:"TableGrid-item",actions:"TableGrid-actions",noItems:"TableGrid-noItems"},l=e(n)(function(e){var n=e.theme;return t(t(t(t(t(t(t(t(t({flex:1,height:"100%",display:"flex",flexDirection:"column"},".".concat(r.content),{position:"relative",flex:1,zIndex:1}),".".concat(r.contentPosition),{position:"absolute",top:0,left:0,width:"100%",height:"100%"}),".".concat(r.contentInner),{overflowY:"auto",padding:"10px 5px"}),".".concat(r.filterBarWrap),{flexWrap:"wrap",gap:n.spacing(1),alignItems:"stretch",flexDirection:"row"}),".".concat(r.overlay),{display:"flex",alignItems:"center",justifyContent:"center",background:a(o.common.white,.4),zIndex:10}),".".concat(r.noItems),{display:"flex",alignItems:"center",justifyContent:"center"}),".".concat(r.item),{position:"relative"}),".".concat(r.actions),{position:"absolute",top:"5px",right:"5px",zIndex:5,display:"inline-block"}),".".concat(i.root),{background:o.common.white,position:"relative",zIndex:5})}),c=e(n)({width:"100%",paddingBottom:"100%",background:o.grey[600]});export{c as ItemDefault,l as TableGridStyled,r as tableGridClasses};
2
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled.js","sources":["../../../src/table-grid/styled.tsx"],"sourcesContent":["import { alpha, Box, colors, styled, tablePaginationClasses } from '@mui/material'\r\n\r\nexport const tableGridClasses = {\r\n root: 'TableGrid-root',\r\n content: 'TableGrid-content',\r\n contentPosition: 'TableGrid-contentPosition',\r\n contentInner: 'TableGrid-contentInner',\r\n filterBarWrap: 'TableGrid-filterBarWrap',\r\n loading: 'TableGrid-loading',\r\n overlay: 'TableGrid-overlay',\r\n item: 'TableGrid-item',\r\n actions: 'TableGrid-actions',\r\n noItems: 'TableGrid-noItems'\r\n}\r\n\r\nexport const TableGridStyled = styled(Box)(({ theme }) => ({\r\n flex: 1,\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [`.${tableGridClasses.content}`]: {\r\n position: 'relative',\r\n flex: 1,\r\n zIndex: 1\r\n },\r\n [`.${tableGridClasses.contentPosition}`]: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%'\r\n },\r\n [`.${tableGridClasses.contentInner}`]: {\r\n overflowY: 'auto',\r\n padding: '10px 5px'\r\n },\r\n [`.${tableGridClasses.filterBarWrap}`]: {\r\n flexWrap: 'wrap',\r\n gap: theme.spacing(1),\r\n alignItems: 'stretch',\r\n flexDirection: 'row'\r\n },\r\n [`.${tableGridClasses.overlay}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: alpha(colors.common.white, 0.4),\r\n zIndex: 10\r\n },\r\n [`.${tableGridClasses.noItems}`]: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n [`.${tableGridClasses.item}`]: {\r\n position: 'relative'\r\n },\r\n [`.${tableGridClasses.actions}`]: {\r\n position: 'absolute',\r\n top: '5px',\r\n right: '5px',\r\n zIndex: 5,\r\n display: 'inline-block'\r\n },\r\n [`.${tablePaginationClasses.root}`]: {\r\n background: colors.common.white,\r\n position: 'relative',\r\n zIndex: 5\r\n }\r\n}))\r\n\r\nexport const ItemDefault = styled(Box)({\r\n width: '100%',\r\n paddingBottom: '100%',\r\n background: colors.grey[600]\r\n})\r\n"],"names":["tableGridClasses","root","content","contentPosition","contentInner","filterBarWrap","loading","overlay","item","actions","noItems","TableGridStyled","styled","Box","_ref","theme","_defineProperty","flex","height","display","flexDirection","concat","position","zIndex","top","left","width","overflowY","padding","flexWrap","gap","spacing","alignItems","justifyContent","background","alpha","colors","common","white","right","tablePaginationClasses","ItemDefault","paddingBottom","grey"],"mappings":"gLAEO,IAAMA,EAAmB,CAC9BC,KAAM,iBACNC,QAAS,oBACTC,gBAAiB,4BACjBC,aAAc,yBACdC,cAAe,0BACfC,QAAS,oBACTC,QAAS,oBACTC,KAAM,iBACNC,QAAS,oBACTC,QAAS,qBAGEC,EAAkBC,EAAOC,EAAPD,CAAY,SAAAE,GAAA,IAAGC,EAAKD,EAALC,MAAK,OAAAC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CACjDC,KAAM,EACNC,OAAQ,OACRC,QAAS,OACTC,cAAe,UAAQ,IAAAC,OAClBrB,EAAiBE,SAAY,CAChCoB,SAAU,WACVL,KAAM,EACNM,OAAQ,QACTF,OACIrB,EAAiBG,iBAAoB,CACxCmB,SAAU,WACVE,IAAK,EACLC,KAAM,EACNC,MAAO,OACPR,OAAQ,aACTG,OACIrB,EAAiBI,cAAiB,CACrCuB,UAAW,OACXC,QAAS,iBACVP,OACIrB,EAAiBK,eAAkB,CACtCwB,SAAU,OACVC,IAAKf,EAAMgB,QAAQ,GACnBC,WAAY,UACZZ,cAAe,YAChBC,OACIrB,EAAiBO,SAAY,CAChCY,QAAS,OACTa,WAAY,SACZC,eAAgB,SAChBC,WAAYC,EAAMC,EAAOC,OAAOC,MAAO,IACvCf,OAAQ,SACTF,OACIrB,EAAiBU,SAAY,CAChCS,QAAS,OACTa,WAAY,SACZC,eAAgB,eACjBZ,OACIrB,EAAiBQ,MAAS,CAC7Bc,SAAU,iBACXD,OACIrB,EAAiBS,SAAY,CAChCa,SAAU,WACVE,IAAK,MACLe,MAAO,MACPhB,OAAQ,EACRJ,QAAS,qBACVE,OACImB,EAAuBvC,MAAS,CACnCiC,WAAYE,EAAOC,OAAOC,MAC1BhB,SAAU,WACVC,OAAQ,GACT,GAGUkB,EAAc7B,EAAOC,EAAPD,CAAY,CACrCc,MAAO,OACPgB,cAAe,OACfR,WAAYE,EAAOO,KAAK"}
@@ -1,2 +1,2 @@
1
- import{objectSpread2 as t,defineProperty as r,inherits as e,createClass as o,classCallCheck as i,callSuper as n}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as l,Fragment as s}from"react/jsx-runtime";import{Component as p}from"react";import{styled as u,Typography as d,Box as f,Tooltip as c,Button as m}from"@mui/material";import h from"@mui/icons-material/AddCircleOutline";import{Breadcrumbs as v}from"../components/breadcrumbs.js";import{mapGlobalModalContext as x}from"../api-context/global-modal.js";var b=function(){function u(){var e;i(this,u);for(var o=arguments.length,l=new Array(o),p=0;p<o;p++)l[p]=arguments[p];return e=n(this,u,[].concat(l)),r(e,"renderButtonCreate",(function(){return e.props.formCreate?x((function(r){var o;return a(c,{title:"Create new",children:a(m,t(t({size:"small",onClick:function(){return r.show({renderContent:function(){return e.props.formCreate}})},startIcon:a(h,{fontSize:"small"}),sx:{fontWeight:600},variant:"contained"},null===(o=e.props.slots)||void 0===o?void 0:o.buttonCreateProps),{},{children:"Create"}))})})):a(s,{})})),r(e,"renderTitle",(function(){var t,r=null!==(t=e.props)&&void 0!==t?t:{},o=r.title,i=r.breadcrumbs;return i?a(v,{value:i}):a("string"==typeof o?g:s,{children:o})})),e}return e(u,p),o(u,[{key:"render",value:function(){var r,e,o,i,n;if(!1!==this.props.visible)return l(C,t(t({},null===(r=this.props.slots)||void 0===r?void 0:r.rootProps),{},{children:[null===(e=this.props.titleSlots)||void 0===e?void 0:e.before,this.renderTitle(),null===(o=this.props.titleSlots)||void 0===o?void 0:o.after,a(f,{sx:{flex:{xs:"0 0 auto",md:1},width:{xs:"100%",md:"auto"}}}),null===(i=this.props.actionSlots)||void 0===i?void 0:i.before,this.renderButtonCreate(),null===(n=this.props.actionSlots)||void 0===n?void 0:n.after]}))}}])}(),g=u((function(r){return a(d,t({noWrap:!0,variant:"subtitle1"},r))}))({fontWeight:700,flex:1}),C=u(f)((function(t){var e=t.theme;return r({height:"var(--height-toolbar, 56px)",display:"flex",alignItems:"center",gap:"8px",padding:"0 6px",flexWrap:"wrap"},e.breakpoints.down("sm"),{height:"auto",padding:"12px 0",alignItems:"flex-start"})}));export{b as default};
1
+ import{objectSpread2 as t,defineProperty as r,inherits as e,createClass as o,classCallCheck as i,callSuper as n}from"../../_virtual/_rollupPluginBabelHelpers.js";import{jsx as a,jsxs as l,Fragment as s}from"react/jsx-runtime";import{Component as p}from"react";import{styled as u,Typography as d,Box as f,Tooltip as c,Button as m}from"@mui/material";import h from"@mui/icons-material/AddCircleOutline";import{Breadcrumbs as v}from"../components/breadcrumbs.js";import{mapGlobalModalContext as x}from"../api-context/global-modal.js";var b=function(){function u(){var e;i(this,u);for(var o=arguments.length,l=new Array(o),p=0;p<o;p++)l[p]=arguments[p];return e=n(this,u,[].concat(l)),r(e,"renderButtonCreate",function(){return e.props.formCreate?x(function(r){var o;return a(c,{title:"Create new",children:a(m,t(t({size:"small",onClick:function(){return r.show({renderContent:function(){return e.props.formCreate}})},startIcon:a(h,{fontSize:"small"}),sx:{fontWeight:600},variant:"contained"},null===(o=e.props.slots)||void 0===o?void 0:o.buttonCreateProps),{},{children:"Create"}))})}):a(s,{})}),r(e,"renderTitle",function(){var t,r=null!==(t=e.props)&&void 0!==t?t:{},o=r.title,i=r.breadcrumbs;return i?a(v,{value:i}):a("string"==typeof o?g:s,{children:o})}),e}return e(u,p),o(u,[{key:"render",value:function(){var r,e,o,i,n;if(!1!==this.props.visible)return l(C,t(t({},null===(r=this.props.slots)||void 0===r?void 0:r.rootProps),{},{children:[null===(e=this.props.titleSlots)||void 0===e?void 0:e.before,this.renderTitle(),null===(o=this.props.titleSlots)||void 0===o?void 0:o.after,a(f,{sx:{flex:{xs:"0 0 auto",md:1},width:{xs:"100%",md:"auto"}}}),null===(i=this.props.actionSlots)||void 0===i?void 0:i.before,this.renderButtonCreate(),null===(n=this.props.actionSlots)||void 0===n?void 0:n.after]}))}}])}(),g=u(function(r){return a(d,t({noWrap:!0,variant:"subtitle1"},r))})({fontWeight:700,flex:1}),C=u(f)(function(t){var e=t.theme;return r({height:"var(--height-toolbar, 56px)",display:"flex",alignItems:"center",gap:"8px",padding:"0 6px",flexWrap:"wrap"},e.breakpoints.down("sm"),{height:"auto",padding:"12px 0",alignItems:"flex-start"})});export{b as default};
2
2
  //# sourceMappingURL=toolbar-pannel.js.map