@nocobase/plugin-block-tree 2.1.0-alpha.10 → 2.1.0-alpha.12

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.
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("ahooks"),require("react-i18next"),require("react"),require("antd"),require("@nocobase/client"),require("@formily/react"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("lodash")):"function"==typeof define&&define.amd?define("@nocobase/plugin-block-tree",["ahooks","react-i18next","react","antd","@nocobase/client","@formily/react","@nocobase/utils/client","@ant-design/icons","lodash"],t):"object"==typeof exports?exports["@nocobase/plugin-block-tree"]=t(require("ahooks"),require("react-i18next"),require("react"),require("antd"),require("@nocobase/client"),require("@formily/react"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("lodash")):e["@nocobase/plugin-block-tree"]=t(e.ahooks,e["react-i18next"],e.react,e.antd,e["@nocobase/client"],e["@formily/react"],e["@nocobase/utils/client"],e["@ant-design/icons"],e.lodash)}(self,function(e,t,n,r,o,a,i,l,c){return function(){"use strict";var u,s={375:function(e){e.exports=l},230:function(e){e.exports=a},342:function(e){e.exports=o},768:function(e){e.exports=i},625:function(t){t.exports=e},59:function(e){e.exports=r},773:function(e){e.exports=c},155:function(e){e.exports=n},953:function(e){e.exports=t}},p={};function f(e){var t=p[e];if(void 0!==t)return t.exports;var n=p[e]={exports:{}};return s[e](n,n.exports,f),n.exports}f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.g.importScripts&&(d=f.g.location+"");var d,m=f.g.document;if(!d&&m&&(m.currentScript&&"SCRIPT"===m.currentScript.tagName.toUpperCase()&&(d=m.currentScript.src),!d)){var y=m.getElementsByTagName("script");if(y.length)for(var b=y.length-1;b>-1&&(!d||!/^http(s?):/.test(d));)d=y[b--].src}if(!d)throw Error("Automatic publicPath is not supported in this browser");f.p=d.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var v={};return"/"!==(u=window.__webpack_public_path__||"/").charAt(u.length-1)&&(u+="/"),f.p=u+"static/plugins/@nocobase/plugin-block-tree/dist/client/",!function(){f.r(v),f.d(v,{PluginBlockTreeClient:function(){return z},Tree:function(){return B},default:function(){return H}});var e=f(342),t=f(155),n=f.n(t),r=f(768),o="Tree",a="tree",i=f(230),l=f(953),c=JSON.parse('{"UU":"@nocobase/plugin-block-tree"}');function u(){return(0,l.useTranslation)([c.UU,"client"],{nsMode:"fallback"})}function s(e){return"{{t('".concat(e,"', { ns: '").concat(c.UU,"', nsMode: 'fallback' })}}")}var p=(0,e.createSwitchSettingsItem)({title:s("Expand all"),name:"expandAll",schemaKey:"x-decorator-props.tree.defaultExpandAll",defaultValue:!1}),d=(0,e.createSelectSchemaSettingsItem)({name:"recordsCount",title:s("Root records per page"),options:[{label:"10",value:10},{label:"20",value:20},{label:"50",value:50},{label:"100",value:100},{label:"200",value:200},{label:"500",value:500}],schemaKey:"x-decorator-props.params.pageSize",defaultValue:200}),m=(0,e.createSwitchSettingsItem)({name:"searchable",title:s("Searchable"),schemaKey:"x-decorator-props.tree.searchable",defaultValue:!0}),y=(0,e.createSelectSchemaSettingsItem)({name:"titleField",title:"{{t('".concat("Title field","')}}"),useOptions:function(){var t=(0,e.useCollection)(),n=(0,e.useCompile)();return t.getFields(function(e){return t.isTitleField(e)}).map(function(e){var t;return{label:(null==(t=e.uiSchema)?void 0:t.title)?n(e.uiSchema.title):e.name,value:e.name}})},schemaKey:"x-decorator-props.tree.fieldNames.title",useDefaultValue:S}),b=new e.SchemaSettings({name:"blockSettings:".concat(a),items:[{name:"editBlockTitle",Component:e.SchemaSettingsBlockTitleItem},{name:"setTheBlockHeight",Component:e.SchemaSettingsBlockHeightItem},{name:"blockLinkageRules",Component:e.SchemaSettingsLinkageRules,useComponentProps:function(){return{title:(0,(0,l.useTranslation)().t)("Block Linkage rules",{ns:"client"}),category:e.LinkageRuleCategory.block}}},e.setDefaultSortingRulesSchemaSettingsItem,e.setTheDataScopeSchemaSettingsItem,m,p,y,d,{name:"ConnectDataBlocks",Component:e.SchemaSettingsConnectDataBlocks,useComponentProps:function(){var t=(0,l.useTranslation)().t;return{type:e.FilterBlockType.TREE,emptyDescription:t("No blocks to connect")}}},{type:"divider",name:"divider-1"},{name:"ConvertReferenceToDuplicate",Component:e.SchemaSettingsTemplate,useComponentProps:function(){var t,n,r=(0,e.useCollection)(),o=(0,i.useFieldSchema)(),a=(0,e.useBlockTemplateContext)().componentNamePrefix,l=(null==o||null==(t=o["x-decorator-props"])?void 0:t.resource)||(null==o||null==(n=o["x-decorator-props"])?void 0:n.association);return{componentName:"".concat(a,"Tree"),useTranslationHooks:u,collectionName:r.name,resourceName:l}}},{type:"divider",name:"divider-2"},{name:"remove",type:"remove",componentProps:{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}}]});function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){h(e,t,n[t])})}return e}function S(){return(0,e.useCollection)().filterTargetKey}function O(){var o,a,i=(0,e.useDataBlockRequest)(),l=i.data,c=i.run,u=i.loading,s=(0,e.useDataBlockProps)(),p=s.tree,f=s.params,d=(0,e.useCollection)(),m=S(),y=(0,e.useApp)(),b=d.titleField||m,v=(0,e.useFilterAPI)(),O=v.isConnected,x=v.doFilter,k=(0,e.useDataBlockHeight)({removeBlockHeaderHeight:!0,innerExtraHeight:90}),P=(0,t.useMemo)(function(){return g({key:m,title:b},null==p?void 0:p.fieldNames)},[m,d,null==p?void 0:p.fieldNames]),w=(0,t.useMemo)(function(){return d.getField(P.title)},[P.title,d]),j=(0,t.useMemo)(function(){var e=w.interface;return e?y.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(e):null},[w]),E=(0,t.useMemo)(function(){var e,t;return null==j||null==(t=j.filterable)||null==(e=t.operators)?void 0:e[0]},[j]),C=(0,t.useRef)(),T=(0,t.useCallback)(function(t){C.current=t;var n=""===t||void 0==t?{}:{$and:[h({},P.title,h({},(null==E?void 0:E.value)||"$eq",t))]};c({filter:(0,e.mergeFilter)([null==f?void 0:f.filter,n])})},[P.title,JSON.stringify(null==f?void 0:f.filter),null==E?void 0:E.value,c]);(0,t.useEffect)(function(){T(C.current)},[JSON.stringify(null==f?void 0:f.filter)]);var I=(0,t.useCallback)(function(e){O&&(0===e.length?x(null):x(function(t,n,o){if(null==t?void 0:t.field){var a=n.collection.getField(t.field),i=(0,r.treeFind)(null==l?void 0:l.data,function(t){return t[m]===e[0]});return null==i?void 0:i[o||a.name]}return e[0]},function(e){return(null==e?void 0:e.field)||m}))},[O,x,null==l?void 0:l.data,m]),D=(0,t.useMemo)(function(){return g({},null==w?void 0:w.uiSchema,null==E?void 0:E.schema)},[E]),M=(0,t.useCallback)(function(t){var r=t.value,o=t.onChange;return n().createElement(e.FilterContext.Provider,{value:{}},n().createElement(e.FilterDynamicComponent,{value:r,schema:D,collectionField:w,onChange:o,style:{width:"100%"},componentProps:{allowClear:!0}}))},[D,w]);return o=g({},p),a=a={height:k,loading:u,fieldNames:P,treeData:null==l?void 0:l.data,onSearch:T,onSelect:I,FilterComponent:M},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(a)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(a)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(a,e))}),o}var x=f(625),k=f(59),P=f(773);function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||T(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e){return function(e){if(Array.isArray(e))return w(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||T(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(e,t){if(e){if("string"==typeof e)return w(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(e,t)}}var I=function(e,t,n){for(var r,o=(null==n?void 0:n.key)||"key",a=(null==n?void 0:n.children)||"children",i=0;i<t.length;i++){var l=t[i];l[a]&&(l[a].some(function(t){return t[o]===e})?r=l[o]:I(e,l[a],n)&&(r=I(e,l[a],n)))}return r},D=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=(null==t?void 0:t.children)||"children";return e.reduce(function(e,t){var r=t[n],o=r?D(r):[];return C(e).concat([t],C(o))},[])},M=function(e){e.value;var t=e.onChange,r=u().t;return n().createElement(k.Input,{allowClear:!0,placeholder:r("Search"),onChange:function(e){return t(e.target.value)}})},B=(0,e.withDynamicSchemaProps)(function(r){var o,a,i=r.searchable,l=void 0===i||i,c=r.onSearch,u=r.treeData,s=r.loading,p=r.fieldNames,f=r.defaultExpandAll,d=r.onExpand,m=r.FilterComponent,y=r.defaultExpandedKeys,b=r.expandedKeys,v=r.autoExpandParent,h=function(e,t){if(null==e)return{};var n,r,o,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,n=Reflect.ownKeys(Object(e));o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}(r,["searchable","onSearch","treeData","loading","fieldNames","defaultExpandAll","onExpand","FilterComponent","defaultExpandedKeys","expandedKeys","autoExpandParent"]),g=(0,t.useMemo)(function(){return(0,P.cloneDeep)(u)},[u]),S=(0,e.useCompile)(),O=(0,t.useMemo)(function(){return(null==p?void 0:p.key)||"key"},[null==p?void 0:p.key]),w=(0,t.useMemo)(function(){return(null==p?void 0:p.children)||"children"},[null==p?void 0:p.children]),C=(0,t.useMemo)(function(){return(null==p?void 0:p.title)||"title"},[null==p?void 0:p.title]),T=(0,t.useMemo)(function(){return l||f?D(g,p):null},[g]),B=(0,t.useMemo)(function(){return null==T?void 0:T.map(function(e){return e[O]})},[T,O]),F=E((0,t.useState)(b),2),N=F[0],_=F[1],q=E((0,t.useState)(""),2),A=q[0],R=q[1],K=E((0,t.useState)(void 0===v||v),2),U=K[0],z=K[1],H=k.theme.useToken().token,$=(0,t.useMemo)(function(){var e=function(t){return t.map(function(t){var r,o,a=String(S(t[C])),i=a.indexOf(String(A)),l=a.substring(0,i),c=a.slice(i+String(A).length),u=i>-1?n().createElement("span",null,l,n().createElement("span",{style:{color:H.colorPrimary}},A),c):n().createElement("span",null,a);return t[w]?(j(r={},C,u),j(r,O,t[O]),j(r,w,e((0,P.cloneDeep)(t[w]))),r):(j(o={},C,u),j(o,O,t[O]),o)})};return e(g||[])},[A,g,C,O,w]),L=(0,t.useCallback)(function(e,t){_(e),z(!1),null==d||d(e,t)},[d]),V=(0,x.useDebounceFn)(function(e){R(e),null==c||c(e)},{wait:400});return(0,t.useEffect)(function(){A?_(T.map(function(e){return String(e[C]).indexOf(A)>-1?I(e[O],u,p):null}).filter(function(e,t,n){return!!(e&&n.indexOf(e)===t)})):f?_(B):_(b||y),z(!0)},[A,u,C,O,w,T,f,B,b,y]),n().createElement("div",null,l&&n().createElement("div",{style:{marginBottom:H.marginXS}},n().createElement(void 0===m?M:m,{value:A,onChange:V.run})),s?n().createElement("div",{style:{height:200,marginTop:H.margin,textAlign:"center"}},n().createElement(k.Spin,null)):$.length?n().createElement(k.Tree,(o=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){j(e,t,n[t])})}return e}({},h),a=a={onExpand:L,fieldNames:p,expandedKeys:N,autoExpandParent:U,treeData:$},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(a)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(a)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(a,e))}),o)):n().createElement(k.Empty,{image:k.Empty.PRESENTED_IMAGE_SIMPLE}))},{displayName:o}),F=f(375),N={type:"item",name:a,Component:"DataBlockInitializer",useComponentProps:function(){var t=(0,e.useSchemaInitializer)().insert,r=u().t,a=(0,e.useApp)();return{title:r("Tree"),icon:n().createElement(F.MenuOutlined,null),componentType:o,onCreateBlockSchema:function(e){var n,r,i,l,c,u,s,p,f=e.item;f.name&&t((r=(n={dataSource:f.dataSource,collection:f.name,isTreeCollection:(null==(p=a.getCollectionManager(f.dataSource))||null==(s=p.getCollection(f.name))?void 0:s.template)==="tree"}).dataSource,i=n.collection,l=n.isTreeCollection,{type:"void","x-decorator":"DataBlockProvider","x-decorator-props":{dataSource:r,collection:i,action:"list",params:{pageSize:200,tree:!!l||void 0},tree:void 0===(c=n.props)?{}:c},"x-component":"CardItem","x-component-props":void 0===(u=n.cardProps)?{}:u,"x-settings":b.name,"x-toolbar":"BlockSchemaToolbar","x-filter-targets":[],properties:{tree:{type:"void","x-component":o,"x-use-component-props":"useTreeProps"}}}))}}}};function _(e,t,n,r,o,a,i){try{var l=e[a](i),c=l.value}catch(e){n(e);return}l.done?t(c):Promise.resolve(c).then(r,o)}function q(e,t,n){return(q=U()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&R(o,n.prototype),o}).apply(null,arguments)}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function R(e,t){return(R=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function K(e){var t="function"==typeof Map?new Map:void 0;return(K=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return q(e,arguments,A(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),R(n,e)})(e)}function U(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(U=function(){return!!e})()}var z=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=A(e),function(e,t){var n;if(t&&("object"==((n=t)&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,U()?Reflect.construct(e,t||[],A(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&R(n,e),t=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(i,"next",{value:c(0)}),l(i,"throw",{value:c(1)}),l(i,"return",{value:c(2)}),"function"==typeof Symbol&&l(i,Symbol.iterator,{value:function(){return this}}),i;function c(l){return function(c){var u=[l,c];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(e){return this.app.addComponents({Tree:B}),this.app.schemaSettingsManager.add(b),this.app.addScopes({useTreeProps:O}),this.app.schemaInitializerManager.addItem("page:addBlock","filterBlocks.".concat(N.name),N),this.app.schemaInitializerManager.addItem("popup:common:addBlock","filterBlocks.".concat(N.name),N),this.app.schemaInitializerManager.addItem("popup:tableSelector:addBlock","filterBlocks.".concat(N.name),N),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){_(a,r,o,i,l,"next",e)}function l(e){_(a,r,o,i,l,"throw",e)}i(void 0)})}).call(this)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(K(e.Plugin)),H=z}(),v}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("ahooks"),require("react"),require("antd"),require("@nocobase/client"),require("@formily/react"),require("@ant-design/icons"),require("@nocobase/utils/client"),require("lodash")):"function"==typeof define&&define.amd?define("@nocobase/plugin-block-tree",["react-i18next","ahooks","react","antd","@nocobase/client","@formily/react","@ant-design/icons","@nocobase/utils/client","lodash"],t):"object"==typeof exports?exports["@nocobase/plugin-block-tree"]=t(require("react-i18next"),require("ahooks"),require("react"),require("antd"),require("@nocobase/client"),require("@formily/react"),require("@ant-design/icons"),require("@nocobase/utils/client"),require("lodash")):e["@nocobase/plugin-block-tree"]=t(e["react-i18next"],e.ahooks,e.react,e.antd,e["@nocobase/client"],e["@formily/react"],e["@ant-design/icons"],e["@nocobase/utils/client"],e.lodash)}(self,function(e,t,n,r,o,a,i,l,c){return function(){"use strict";var u={375:function(e){e.exports=i},230:function(e){e.exports=a},342:function(e){e.exports=o},768:function(e){e.exports=l},625:function(e){e.exports=t},59:function(e){e.exports=r},773:function(e){e.exports=c},155:function(e){e.exports=n},953:function(t){t.exports=e}},s={};function p(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return u[e](n,n.exports,p),n.exports}p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var n in t)p.o(t,n)&&!p.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},p.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.g.importScripts&&(f=p.g.location+"");var f,d=p.g.document;if(!f&&d&&(d.currentScript&&"SCRIPT"===d.currentScript.tagName.toUpperCase()&&(f=d.currentScript.src),!f)){var m=d.getElementsByTagName("script");if(m.length)for(var y=m.length-1;y>-1&&(!f||!/^http(s?):/.test(f));)f=m[y--].src}if(!f)throw Error("Automatic publicPath is not supported in this browser");p.p=f.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var b={},v=window.__nocobase_public_path__||"";if(!v&&window.location&&window.location.pathname){var h=window.location.pathname||"/",g=h.indexOf("/v2/");v=g>=0?h.slice(0,g+1):"/"}return v&&(v=v.replace(/\/v2\/?$/,"/")),v||(v="/"),"/"!==v.charAt(v.length-1)&&(v+="/"),p.p=v+"static/plugins/@nocobase/plugin-block-tree/dist/client/",!function(){p.r(b),p.d(b,{PluginBlockTreeClient:function(){return z},Tree:function(){return B},default:function(){return H}});var e=p(342),t=p(155),n=p.n(t),r=p(768),o="Tree",a="tree",i=p(230),l=p(953),c=JSON.parse('{"UU":"@nocobase/plugin-block-tree"}');function u(){return(0,l.useTranslation)([c.UU,"client"],{nsMode:"fallback"})}function s(e){return"{{t('".concat(e,"', { ns: '").concat(c.UU,"', nsMode: 'fallback' })}}")}var f=(0,e.createSwitchSettingsItem)({title:s("Expand all"),name:"expandAll",schemaKey:"x-decorator-props.tree.defaultExpandAll",defaultValue:!1}),d=(0,e.createSelectSchemaSettingsItem)({name:"recordsCount",title:s("Root records per page"),options:[{label:"10",value:10},{label:"20",value:20},{label:"50",value:50},{label:"100",value:100},{label:"200",value:200},{label:"500",value:500}],schemaKey:"x-decorator-props.params.pageSize",defaultValue:200}),m=(0,e.createSwitchSettingsItem)({name:"searchable",title:s("Searchable"),schemaKey:"x-decorator-props.tree.searchable",defaultValue:!0}),y=(0,e.createSelectSchemaSettingsItem)({name:"titleField",title:"{{t('".concat("Title field","')}}"),useOptions:function(){var t=(0,e.useCollection)(),n=(0,e.useCompile)();return t.getFields(function(e){return t.isTitleField(e)}).map(function(e){var t;return{label:(null==(t=e.uiSchema)?void 0:t.title)?n(e.uiSchema.title):e.name,value:e.name}})},schemaKey:"x-decorator-props.tree.fieldNames.title",useDefaultValue:S}),v=new e.SchemaSettings({name:"blockSettings:".concat(a),items:[{name:"editBlockTitle",Component:e.SchemaSettingsBlockTitleItem},{name:"setTheBlockHeight",Component:e.SchemaSettingsBlockHeightItem},{name:"blockLinkageRules",Component:e.SchemaSettingsLinkageRules,useComponentProps:function(){return{title:(0,(0,l.useTranslation)().t)("Block Linkage rules",{ns:"client"}),category:e.LinkageRuleCategory.block}}},e.setDefaultSortingRulesSchemaSettingsItem,e.setTheDataScopeSchemaSettingsItem,m,f,y,d,{name:"ConnectDataBlocks",Component:e.SchemaSettingsConnectDataBlocks,useComponentProps:function(){var t=(0,l.useTranslation)().t;return{type:e.FilterBlockType.TREE,emptyDescription:t("No blocks to connect")}}},{type:"divider",name:"divider-1"},{name:"ConvertReferenceToDuplicate",Component:e.SchemaSettingsTemplate,useComponentProps:function(){var t,n,r=(0,e.useCollection)(),o=(0,i.useFieldSchema)(),a=(0,e.useBlockTemplateContext)().componentNamePrefix,l=(null==o||null==(t=o["x-decorator-props"])?void 0:t.resource)||(null==o||null==(n=o["x-decorator-props"])?void 0:n.association);return{componentName:"".concat(a,"Tree"),useTranslationHooks:u,collectionName:r.name,resourceName:l}}},{type:"divider",name:"divider-2"},{name:"remove",type:"remove",componentProps:{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}}]});function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){h(e,t,n[t])})}return e}function S(){return(0,e.useCollection)().filterTargetKey}function O(){var o,a,i=(0,e.useDataBlockRequest)(),l=i.data,c=i.run,u=i.loading,s=(0,e.useDataBlockProps)(),p=s.tree,f=s.params,d=(0,e.useCollection)(),m=S(),y=(0,e.useApp)(),b=d.titleField||m,v=(0,e.useFilterAPI)(),O=v.isConnected,x=v.doFilter,k=(0,e.useDataBlockHeight)({removeBlockHeaderHeight:!0,innerExtraHeight:90}),w=(0,t.useMemo)(function(){return g({key:m,title:b},null==p?void 0:p.fieldNames)},[m,d,null==p?void 0:p.fieldNames]),P=(0,t.useMemo)(function(){return d.getField(w.title)},[w.title,d]),j=(0,t.useMemo)(function(){var e=P.interface;return e?y.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface(e):null},[P]),E=(0,t.useMemo)(function(){var e,t;return null==j||null==(t=j.filterable)||null==(e=t.operators)?void 0:e[0]},[j]),C=(0,t.useRef)(),T=(0,t.useCallback)(function(t){C.current=t;var n=""===t||void 0==t?{}:{$and:[h({},w.title,h({},(null==E?void 0:E.value)||"$eq",t))]};c({filter:(0,e.mergeFilter)([null==f?void 0:f.filter,n])})},[w.title,JSON.stringify(null==f?void 0:f.filter),null==E?void 0:E.value,c]);(0,t.useEffect)(function(){T(C.current)},[JSON.stringify(null==f?void 0:f.filter)]);var I=(0,t.useCallback)(function(e){O&&(0===e.length?x(null):x(function(t,n,o){if(null==t?void 0:t.field){var a=n.collection.getField(t.field),i=(0,r.treeFind)(null==l?void 0:l.data,function(t){return t[m]===e[0]});return null==i?void 0:i[o||a.name]}return e[0]},function(e){return(null==e?void 0:e.field)||m}))},[O,x,null==l?void 0:l.data,m]),D=(0,t.useMemo)(function(){return g({},null==P?void 0:P.uiSchema,null==E?void 0:E.schema)},[E]),M=(0,t.useCallback)(function(t){var r=t.value,o=t.onChange;return n().createElement(e.FilterContext.Provider,{value:{}},n().createElement(e.FilterDynamicComponent,{value:r,schema:D,collectionField:P,onChange:o,style:{width:"100%"},componentProps:{allowClear:!0}}))},[D,P]);return o=g({},p),a=a={height:k,loading:u,fieldNames:w,treeData:null==l?void 0:l.data,onSearch:T,onSelect:I,FilterComponent:M},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(a)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(a)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(a,e))}),o}var x=p(625),k=p(59),w=p(773);function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||T(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e){return function(e){if(Array.isArray(e))return P(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||T(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(e,t){if(e){if("string"==typeof e)return P(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P(e,t)}}var I=function(e,t,n){for(var r,o=(null==n?void 0:n.key)||"key",a=(null==n?void 0:n.children)||"children",i=0;i<t.length;i++){var l=t[i];l[a]&&(l[a].some(function(t){return t[o]===e})?r=l[o]:I(e,l[a],n)&&(r=I(e,l[a],n)))}return r},D=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=(null==t?void 0:t.children)||"children";return e.reduce(function(e,t){var r=t[n],o=r?D(r):[];return C(e).concat([t],C(o))},[])},M=function(e){e.value;var t=e.onChange,r=u().t;return n().createElement(k.Input,{allowClear:!0,placeholder:r("Search"),onChange:function(e){return t(e.target.value)}})},B=(0,e.withDynamicSchemaProps)(function(r){var o,a,i=r.searchable,l=void 0===i||i,c=r.onSearch,u=r.treeData,s=r.loading,p=r.fieldNames,f=r.defaultExpandAll,d=r.onExpand,m=r.FilterComponent,y=r.defaultExpandedKeys,b=r.expandedKeys,v=r.autoExpandParent,h=function(e,t){if(null==e)return{};var n,r,o,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,n=Reflect.ownKeys(Object(e));o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}(r,["searchable","onSearch","treeData","loading","fieldNames","defaultExpandAll","onExpand","FilterComponent","defaultExpandedKeys","expandedKeys","autoExpandParent"]),g=(0,t.useMemo)(function(){return(0,w.cloneDeep)(u)},[u]),S=(0,e.useCompile)(),O=(0,t.useMemo)(function(){return(null==p?void 0:p.key)||"key"},[null==p?void 0:p.key]),P=(0,t.useMemo)(function(){return(null==p?void 0:p.children)||"children"},[null==p?void 0:p.children]),C=(0,t.useMemo)(function(){return(null==p?void 0:p.title)||"title"},[null==p?void 0:p.title]),T=(0,t.useMemo)(function(){return l||f?D(g,p):null},[g]),B=(0,t.useMemo)(function(){return null==T?void 0:T.map(function(e){return e[O]})},[T,O]),F=E((0,t.useState)(b),2),N=F[0],_=F[1],q=E((0,t.useState)(""),2),A=q[0],R=q[1],K=E((0,t.useState)(void 0===v||v),2),U=K[0],z=K[1],H=k.theme.useToken().token,$=(0,t.useMemo)(function(){var e=function(t){return t.map(function(t){var r,o,a=String(S(t[C])),i=a.indexOf(String(A)),l=a.substring(0,i),c=a.slice(i+String(A).length),u=i>-1?n().createElement("span",null,l,n().createElement("span",{style:{color:H.colorPrimary}},A),c):n().createElement("span",null,a);return t[P]?(j(r={},C,u),j(r,O,t[O]),j(r,P,e((0,w.cloneDeep)(t[P]))),r):(j(o={},C,u),j(o,O,t[O]),o)})};return e(g||[])},[A,g,C,O,P]),L=(0,t.useCallback)(function(e,t){_(e),z(!1),null==d||d(e,t)},[d]),V=(0,x.useDebounceFn)(function(e){R(e),null==c||c(e)},{wait:400});return(0,t.useEffect)(function(){A?_(T.map(function(e){return String(e[C]).indexOf(A)>-1?I(e[O],u,p):null}).filter(function(e,t,n){return!!(e&&n.indexOf(e)===t)})):f?_(B):_(b||y),z(!0)},[A,u,C,O,P,T,f,B,b,y]),n().createElement("div",null,l&&n().createElement("div",{style:{marginBottom:H.marginXS}},n().createElement(void 0===m?M:m,{value:A,onChange:V.run})),s?n().createElement("div",{style:{height:200,marginTop:H.margin,textAlign:"center"}},n().createElement(k.Spin,null)):$.length?n().createElement(k.Tree,(o=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){j(e,t,n[t])})}return e}({},h),a=a={onExpand:L,fieldNames:p,expandedKeys:N,autoExpandParent:U,treeData:$},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(a)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(a)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(a,e))}),o)):n().createElement(k.Empty,{image:k.Empty.PRESENTED_IMAGE_SIMPLE}))},{displayName:o}),F=p(375),N={type:"item",name:a,Component:"DataBlockInitializer",useComponentProps:function(){var t=(0,e.useSchemaInitializer)().insert,r=u().t,a=(0,e.useApp)();return{title:r("Tree"),icon:n().createElement(F.MenuOutlined,null),componentType:o,onCreateBlockSchema:function(e){var n,r,i,l,c,u,s,p,f=e.item;f.name&&t((r=(n={dataSource:f.dataSource,collection:f.name,isTreeCollection:(null==(p=a.getCollectionManager(f.dataSource))||null==(s=p.getCollection(f.name))?void 0:s.template)==="tree"}).dataSource,i=n.collection,l=n.isTreeCollection,{type:"void","x-decorator":"DataBlockProvider","x-decorator-props":{dataSource:r,collection:i,action:"list",params:{pageSize:200,tree:!!l||void 0},tree:void 0===(c=n.props)?{}:c},"x-component":"CardItem","x-component-props":void 0===(u=n.cardProps)?{}:u,"x-settings":v.name,"x-toolbar":"BlockSchemaToolbar","x-filter-targets":[],properties:{tree:{type:"void","x-component":o,"x-use-component-props":"useTreeProps"}}}))}}}};function _(e,t,n,r,o,a,i){try{var l=e[a](i),c=l.value}catch(e){n(e);return}l.done?t(c):Promise.resolve(c).then(r,o)}function q(e,t,n){return(q=U()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&R(o,n.prototype),o}).apply(null,arguments)}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function R(e,t){return(R=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function K(e){var t="function"==typeof Map?new Map:void 0;return(K=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return q(e,arguments,A(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),R(n,e)})(e)}function U(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(U=function(){return!!e})()}var z=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,t=arguments,e=A(e),function(e,t){var n;if(t&&("object"==((n=t)&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,U()?Reflect.construct(e,t||[],A(this).constructor):e.apply(this,t))}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&R(n,e),t=[{key:"load",value:function(){var e;return(e=function(){return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(i,"next",{value:c(0)}),l(i,"throw",{value:c(1)}),l(i,"return",{value:c(2)}),"function"==typeof Symbol&&l(i,Symbol.iterator,{value:function(){return this}}),i;function c(l){return function(c){var u=[l,c];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(e){return this.app.addComponents({Tree:B}),this.app.schemaSettingsManager.add(v),this.app.addScopes({useTreeProps:O}),this.app.schemaInitializerManager.addItem("page:addBlock","filterBlocks.".concat(N.name),N),this.app.schemaInitializerManager.addItem("popup:common:addBlock","filterBlocks.".concat(N.name),N),this.app.schemaInitializerManager.addItem("popup:tableSelector:addBlock","filterBlocks.".concat(N.name),N),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){_(a,r,o,i,l,"next",e)}function l(e){_(a,r,o,i,l,"throw",e)}i(void 0)})}).call(this)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),n}(K(e.Plugin)),H=z}(),b}()});
@@ -8,15 +8,15 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "2.1.0-alpha.10",
11
+ "@nocobase/client": "2.1.0-alpha.12",
12
12
  "react-i18next": "11.18.6",
13
- "@nocobase/server": "2.1.0-alpha.10",
13
+ "@nocobase/server": "2.1.0-alpha.12",
14
14
  "ahooks": "3.7.8",
15
15
  "antd": "5.24.2",
16
16
  "lodash": "4.17.21",
17
17
  "react": "18.2.0",
18
- "@nocobase/plugin-block-tree": "2.1.0-alpha.10",
18
+ "@nocobase/plugin-block-tree": "2.1.0-alpha.12",
19
19
  "@ant-design/icons": "5.6.1",
20
- "@nocobase/utils": "2.1.0-alpha.10",
20
+ "@nocobase/utils": "2.1.0-alpha.12",
21
21
  "@formily/react": "2.3.7"
22
22
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/plugin-block-tree",
3
- "version": "2.1.0-alpha.10",
3
+ "version": "2.1.0-alpha.12",
4
4
  "main": "dist/server/index.js",
5
5
  "displayName": "Block: Tree",
6
6
  "displayName.zh-CN": "区块:树",
@@ -23,5 +23,5 @@
23
23
  "Blocks"
24
24
  ],
25
25
  "license": "Apache-2.0",
26
- "gitHead": "ce790d46c0a5768ca9618c7d0d77ab8300de75c8"
26
+ "gitHead": "f12c4a75470590b1670ce54510b96ef94c2cd7a2"
27
27
  }