PK !:,P,Pets/modules.abcPANDAvu ,P <6TOX *j} K}YK.'{KciI+seW;-I>MBOT"ZK1]\OyVHSM0YNQ= 3b 0qb"B!N6qKPNrcD-OyS|i"^~4"yPR %S¿VI~1aS0"S KS>PdvNP)YO п=SR OONvOI!ON N;%M$MM^ROLhMA2MNPMLqO! #6NL""{O(NVML rPy  1 R`"!!d >"PMT!LRvM ,P k   *j}  $ A _ k   % , < H [ f f 1 b  %%&&&,&7&V&v&}&&&&&&&&&&'!'|''''''''( (((/(:(H(V(c(j(n((((((((())9)])))))))"*,*2*<*F*L*Z*f*k*r*****,-3-F-KvOOOOOOyPVVVVVWWWW$WHWPWXW_WgWtW}WWWWWWWWWWWX.XAXHXNX]XeXyX~XXXXXXXXXY YYY.YCYUYoY}YYYYYYYvffffffffffggg&g0g5gKgkgggggggggggghhh)h5hDhPh]hehhhhhhhhhhhii i5iBiTibioiiiiiiiiii jj"jAjHjMjUjbjtjjjjjjjjqqq0>I ^pw<T6$-nu'L_ESTypeAnnotation;, Result: )Ability onBackground!Ability onCreate#Ability onDestroy)Ability onForeground7Ability onWindowStageCreate9Ability onWindowStageDestroyAppStorageGFailed to load the content. Cause: JSON LoggerQSucceeded in loading the content. Data: UIAbility#abilityAccessCtrl codecom.example.fileEdit/entry/ets/entryability/EntryAbility.#12915522817829757867#com.example.fileEdit/entry/ets/entryability/EntryAbility.#16850053770920992207#com.example.fileEdit/entry/ets/entryability/EntryAbility.EntryAbilitycontextcreateAtManager debug errorfileName info lengthloadContent myUripages/FileEditparameters#permissionRequestprototype5requestPermissionsFromUsersetOrCreatestringify wantwant parameters3L_ESSlotNumberAnnotation;@uLcom.example.fileEdit/entry/ets/entryability/EntryAbility; )x%)&6C$$}$Q$C)&PCh&]jh&wC#ykn$pkgName@entryisCommonjsmoduleRecordIdxtypeFlag#typeSummaryOffset-#12915522817829757867#4funcObjany0newTarget 0thiserr data_entry/src/main/ets/entryability/EntryAbility.ts-#16850053770920992207# resultEntryAbility4newTarget this argsfunc_main_03/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import type AbilityConstant from "@ohos:app.ability.AbilityConstant"; import UIAbility from "@ohos:app.ability.UIAbility"; import type Want from "@ohos:app.ability.Want"; import type window from "@ohos:window"; import abilityAccessCtrl from "@ohos:abilityAccessCtrl"; import type { Permissions } from "@ohos:abilityAccessCtrl"; import Logger from "@bundle:com.example.fileEdit/entry/ets/util/Logger"; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { let permissions: Array = [ 'ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA', 'ohos.permission.FILE_ACCESS_MANAGER', 'ohos.permission.GET_BUNDLE_INFO_PRIVILEGED', 'ohos.permission.ACCESS_DLP_FILE', "ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS", "ohos.permission.MANAGE_LOCAL_ACCOUNTS", "ohos.permission.GET_LOCAL_ACCOUNTS", "ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS" ]; let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); atManager.requestPermissionsFromUser(this.context, permissions, (code, result) => { Logger.debug(`permissionRequest${JSON.stringify(code)}, Result: ${JSON.stringify(result)}`); }); Logger.info(`want parameters${JSON.stringify(want.parameters)}`); AppStorage.setOrCreate('want', want); if (want.parameters['fileName']) { AppStorage.setOrCreate('myUri', want.parameters['myUri']); } else { AppStorage.setOrCreate('myUri', ''); } Logger.info('Ability onCreate'); } onDestroy() { Logger.info('Ability onDestroy'); } onWindowStageCreate(windowStage: window.WindowStage) { // Main window is created, set main page for this ability Logger.info('Ability onWindowStageCreate'); windowStage.loadContent('pages/FileEdit', (err, data) => { if (err.code) { Logger.error(`Failed to load the content. Cause: ${JSON.stringify(err)}`); return; } Logger.info(`Succeeded in loading the content. Data: ${JSON.stringify(data)}`); }); } onWindowStageDestroy() { // Main window is destroyed, release UI related resources Logger.info('Ability onWindowStageDestroy'); } onForeground() { // Ability has brought to foreground Logger.info('Ability onForeground'); } onBackground() { // Ability has back to background Logger.info('Ability onBackground'); } } onBackgroundonCreateatManagerpermissionslaunchParamonDestroyonForeground'onWindowStageCreatewindowStage)onWindowStageDestroy*   !!!!"AOdr/#    ! , O>  k#### # # ## $"$?$d$$$$%$ &_  & F   )%U%%%%(!"! J&.J JJrA ! !! "A d  $,Jt!A A A A Au#Logger#@bundle:com.example.fileEdit/entry/ets/util/LoggerM#UIAbility#@ohos:app.ability.UIAbility7@ohos:app.ability.UIAbility/@ohos:abilityAccessCtrle@bundle:com.example.fileEdit/entry/ets/util/Loggerdefault5ohos.permission.READ_MEDIA7ohos.permission.WRITE_MEDIAGohos.permission.FILE_ACCESS_MANAGERUohos.permission.GET_BUNDLE_INFO_PRIVILEGED?ohos.permission.ACCESS_DLP_FILEWohos.permission.MANAGE_DISTRIBUTED_ACCOUNTSKohos.permission.MANAGE_LOCAL_ACCOUNTSEohos.permission.GET_LOCAL_ACCOUNTSU#abilityAccessCtrl#@ohos:abilityAccessCtrle#AbilityConstant#@ohos:app.ability.AbilityConstantI#Permissions#@ohos:abilityAccessCtrl9#Want#@ohos:app.ability.Want)#window#@ohos:window, errMessage:,errMessage:!----displayName:ArrayBufferBUFFER_SIZECOMMON_FD;FLAG_AUTH_READ_URI_PERMISSION=FLAG_AUTH_WRITE_URI_PERMISSION FlagsMediaFileUri7OpenDlpFile failed,errCode:#OpenDlpFile startOpenModeREAD_ONLYREAD_WRITESourceUri:TAGbufferToStringcloseSync/closeSync file error = -closeSync file finish.com.example.fileEdit/entry/ets/feature/MediaFileUri.MediaFileUricommonFdcontentcreateFile7createFile failed, errCode:-createFileAccessHelper delete)delete failed, code:/delete failed, errCode: donefdfileAccess!fileAccessHelperfileInfosfileNameListfileSizeListfileUriList flagsfs#getAllFiles begin%getAllFiles begin getContextgetFileData%getFileInfoFromUrigetRoots keyFd#listFile failed, ]listFile interface returns an undefined objectmessage1myReadSync: read error: EmyWriteSync: write result = resultJmyWriteSync: write failed with error: name nextopen path = GopenReadSync: get fd success. fd = QopenReadSync: open file failed. error = copenReadSync: open file failed. file = undefined.openSync pushreadSyncscanFile sizestartAbilitythe fd is uri valuewantConstant-writeFileContent begin5writeFileContent file fd: qwriteFileContent write data to file succeed and size is:writeSynckLcom.example.fileEdit/entry/ets/feature/MediaFileUri;  OK&J(')O-o*-'GA+AK5, -(;o-:GK~g.Ta}&'Ke/n{Ku1Wentry/src/main/ets/feature/MediaFileUri.etsOpenDlpFile dlpUrisourceUridisplayName filefileUrideleteFilevimport fs from "@ohos:file.fs"; import fileAccess from "@ohos:file.fileAccess"; import type Want from "@ohos:app.ability.Want"; import type { BusinessError } from "@ohos:base"; import Logger from "@bundle:com.example.fileEdit/entry/ets/util/Logger"; import { bufferToString } from "@bundle:com.example.fileEdit/entry/ets/util/Common"; import type common from "@ohos:app.ability.common"; import wantConstant from "@ohos:app.ability.wantConstant"; const TAG = 'MediaFileUri'; const RECENT_MAX = 10; // 最近打开最大文件数 const BUFFER_SIZE = 4096; // 文件读写缓冲区大小 const COMMON_FD = -1; // 文件fd默认值 let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; export default class MediaFileUri { content: string = ''; private commonFd: number = COMMON_FD; private fileSizeList: Array = []; private fileNameList: Array = []; private fileUriList: Array = []; private fileAccessHelper: fileAccess.FileAccessHelper = {} as fileAccess.FileAccessHelper; private fileInfos: Array = []; constructor() { } async getAllFiles(context: common.UIAbilityContext): Promise { Logger.info(TAG, 'getAllFiles begin'); this.fileInfos = []; this.fileAccessHelper = fileAccess.createFileAccessHelper(context); let rootIterator = await this.fileAccessHelper.getRoots(); // 获取目录url let catalogueUrl: string = rootIterator.next().value.uri; Logger.info(TAG, `getAllFiles begin ${catalogueUrl}`); await this.getFileData(catalogueUrl); for (let index = 0; index < this.fileInfos.length && index < RECENT_MAX; index++) { this.fileNameList[index] = this.fileInfos[index].fileName; this.fileSizeList[index] = this.fileInfos[index].size; this.fileUriList[index] = this.fileInfos[index].uri; } AppStorage.setOrCreate('fileNameList', this.fileNameList); AppStorage.setOrCreate('fileSizeList', this.fileSizeList); AppStorage.setOrCreate('fileUriList', this.fileUriList); } async getFileData(url: string): Promise { let isDone: boolean = false; let fileInfo = await this.fileAccessHelper.getFileInfoFromUri(url); try { let fileIterator = fileInfo.scanFile(); if (!fileIterator) { Logger.info(TAG, 'listFile interface returns an undefined object'); } while (!isDone) { let result = fileIterator.next(); isDone = result.done; if (!isDone) { this.fileInfos.push(result.value); } } } catch (err) { Logger.info(TAG, `listFile failed, ${err}`); } } myWriteSync(fd: number, content: string, isClose: boolean): void { try { let result = fs.writeSync(fd, content); Logger.info(TAG, `myWriteSync: write result = result`); } catch (err) { Logger.error(TAG, `myWriteSync: write failed with error:${JSON.stringify(err)}`); } if (isClose) { this.closeSync(fd); this.commonFd = COMMON_FD; } else { this.commonFd = fd; } } // sync-close closeSync(fd: number): void { try { fs.closeSync(fd); Logger.info(TAG, 'closeSync file finish.'); } catch (err) { Logger.error(TAG, `closeSync file error = ${JSON.stringify(err)}`); } } async readFileContent(uri: string, isRead: boolean = true, isClose: boolean = true): Promise { this.fileAccessHelper = fileAccess.createFileAccessHelper(context); let content = ''; Logger.info(TAG, `open path = ${uri}`); let file: fs.File; if (isClose || this.commonFd === COMMON_FD) { try { file = fs.openSync(uri, fs.OpenMode.READ_ONLY); Logger.info(TAG, `openReadSync: get fd success. fd = ${file.fd}`); this.commonFd = file.fd; } catch (err) { Logger.error(TAG, `openReadSync: open file failed. error = ${err}`); return content; } if (file === undefined) { Logger.error(TAG, 'openReadSync: open file failed. file = undefined.'); return content; } } if (isRead) { try { let buffer = new ArrayBuffer(BUFFER_SIZE); let readOut = fs.readSync(this.commonFd, buffer, { offset: 0 }); content = bufferToString(buffer); } catch (err) { Logger.error(TAG, `myReadSync: read error: ${err}`); return content; } if (isClose) { this.closeSync(this.commonFd); this.commonFd = COMMON_FD; } else { this.commonFd = this.commonFd; } } return content; } writeFileContent(uri: string, content: string): void { Logger.info(TAG, 'writeFileContent begin'); let file = fs.openSync(uri, fs.OpenMode.READ_WRITE); Logger.info(TAG, `writeFileContent file fd: ${file.fd}`); let writeLen = fs.writeSync(file.fd, content); Logger.info(TAG, `writeFileContent write data to file succeed and size is:${writeLen}`); fs.closeSync(file); } async createFile(sourceUri: string, displayName: string): Promise { Logger.info(`SourceUri:${sourceUri}----displayName:${displayName}`); try { // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 let fileUri = await this.fileAccessHelper.createFile(sourceUri, displayName); let file = fs.openSync(fileUri, fs.OpenMode.READ_WRITE); Logger.info(`the fd is ${file.fd}`); return file.fd; } catch (err) { let error: BusinessError = err as BusinessError; Logger.error(`createFile failed, errCode:${error.code}, errMessage:${error.message}`); return -1; } } async deleteFile(uri: string) { try { let code = await this.fileAccessHelper.delete(uri); if (code !== 0) { Logger.error(`delete failed, code:${code}`); } } catch (err) { let error: BusinessError = err as BusinessError; Logger.error(`delete failed, errCode:${error.code}`); } } async OpenDlpFile(dlpUri: string, fileName: string, fd: number) { Logger.info(`OpenDlpFile start`); let want: Want = { 'action': 'ohos.want.action.viewData', 'bundleName': 'com.example.fileEdit', 'abilityName': 'EntryAbility', 'flags': wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION, 'uri': dlpUri, 'parameters': { 'fileName': { 'name': fileName }, 'keyFd': { 'type': 'FD', 'value': fd } } }; try { await context.startAbility(want); } catch (err) { Logger.error(`OpenDlpFile failed,errCode:${err.code},errMessage:${err.message}`); return; } } } getAllFilescatalogueUrlrootIterator indexfileInfo isDoneurlfileIteratormyWriteSyncisClosereadFileContent isReadreadOut buffer!writeFileContentwriteLenF!LvMNOPPPPPLLLLMM$M2MVMhMMMMMN(N6NYNNNNNNO/# T ,L ,L ,MAKhM NVMT(VMK&K(N NNK'N NNCUO--P<fUuU#UU #&&(#j(#r*#}&#UUVV%Vc(f*<  ()2V8Vk*KwsJ6eKs!6rKs6s.7t  ;5iKt :(\rc2uu g;Os}7tI :;B,Hr71Rsl6X?tz8E#10532399816760823590#mediaFileUrinewValueKentry/src/main/ets/pages/FileEdit.ets9#12179256114122390078#isEdit-#13352617825999833853# elmtIdisInitialRender-#13993439427011027500#-#14260980721349691738#+#1459791540083249900#-#14618488754455845163#-#14871748996327115258#-#15345847716770070850#-#16030653359887224157#G#17113607904060267750#myFileContent-#17167380291220036686#-#17568003363699467783#-#17901244521052763768#1#17901244521052763768_1#+#2553630325238179044#?#2579626012723767277#fileAssets+#2980942252782351277#+#4327403222149482856#K#432967929247956075#currentPermission+#4567384124539252413#+#4695576669162864821#+#5113703824384715703#5#6034667713700705841#myUri3#6342990329404324674#want?#8617263289841114292#myFileName9#8945777090184586332#uriInfo+#9224012852951385826#msgFileEdit__localStorage parentparamsLambdaisSandboxres htmlinterface FileEdit_Params { mediaFileUri?: MediaFileUri; want?: Want; myFileContent?: string; fileAssets?: FileAssetType; isEdit?: boolean; uriInfo?: fileUri.FileUri; currentPermission?: number; myUri?: string; myFileName?: string; controller?: web_webview.WebviewController; ports?: web_webview.WebMessagePort[]; } import web_webview from "@ohos:web.webview"; import fs from "@ohos:file.fs"; import fileUri from "@ohos:file.fileuri"; import dlpPermission from "@ohos:dlpPermission"; import type Want from "@ohos:app.ability.Want"; import promptAction from "@ohos:promptAction"; import type { BusinessError } from "@ohos:base"; import Logger from "@bundle:com.example.fileEdit/entry/ets/util/Logger"; import MediaFileUri from "@bundle:com.example.fileEdit/entry/ets/feature/MediaFileUri"; import { bufferToString } from "@bundle:com.example.fileEdit/entry/ets/util/Common"; // 文件读写缓冲区大小 const BUFFER_SIZE = 4096; interface FileAssetType { dateModified: number; displayName: string; relativePath: string; } class FileEdit extends ViewPU { constructor(parent, params, __localStorage, elmtId = -1, paramsLambda = undefined) { super(parent, __localStorage, elmtId); if (typeof paramsLambda === "function") { this.paramsGenerator_ = paramsLambda; } this.__mediaFileUri = new ObservedPropertyObjectPU(new MediaFileUri(), this, "mediaFileUri"); this.__want = this.createStorageLink('want', {} as Want, "want"); this.__myFileContent = this.createStorageLink('myFileContent', '', "myFileContent"); this.__fileAssets = new ObservedPropertyObjectPU({} as FileAssetType, this, "fileAssets"); this.__isEdit = new ObservedPropertySimplePU(false, this, "isEdit"); this.__uriInfo = new ObservedPropertyObjectPU({} as fileUri.FileUri, this, "uriInfo"); this.__currentPermission = new ObservedPropertySimplePU(-1, this, "currentPermission"); this.__myUri = this.createStorageLink('myUri', '', "myUri"); this.__myFileName = this.createStorageLink('myFileName', '', "myFileName"); this.controller = new web_webview.WebviewController(); this.ports = []; this.setInitiallyProvidedValue(params); } setInitiallyProvidedValue(params: FileEdit_Params) { if (params.mediaFileUri !== undefined) { this.mediaFileUri = params.mediaFileUri; } if (params.fileAssets !== undefined) { this.fileAssets = params.fileAssets; } if (params.isEdit !== undefined) { this.isEdit = params.isEdit; } if (params.uriInfo !== undefined) { this.uriInfo = params.uriInfo; } if (params.currentPermission !== undefined) { this.currentPermission = params.currentPermission; } if (params.controller !== undefined) { this.controller = params.controller; } if (params.ports !== undefined) { this.ports = params.ports; } } updateStateVars(params: FileEdit_Params) { } purgeVariableDependenciesOnElmtId(rmElmtId) { this.__mediaFileUri.purgeDependencyOnElmtId(rmElmtId); this.__want.purgeDependencyOnElmtId(rmElmtId); this.__myFileContent.purgeDependencyOnElmtId(rmElmtId); this.__fileAssets.purgeDependencyOnElmtId(rmElmtId); this.__isEdit.purgeDependencyOnElmtId(rmElmtId); this.__uriInfo.purgeDependencyOnElmtId(rmElmtId); this.__currentPermission.purgeDependencyOnElmtId(rmElmtId); this.__myUri.purgeDependencyOnElmtId(rmElmtId); this.__myFileName.purgeDependencyOnElmtId(rmElmtId); } aboutToBeDeleted() { this.__mediaFileUri.aboutToBeDeleted(); this.__want.aboutToBeDeleted(); this.__myFileContent.aboutToBeDeleted(); this.__fileAssets.aboutToBeDeleted(); this.__isEdit.aboutToBeDeleted(); this.__uriInfo.aboutToBeDeleted(); this.__currentPermission.aboutToBeDeleted(); this.__myUri.aboutToBeDeleted(); this.__myFileName.aboutToBeDeleted(); SubscriberManager.Get().delete(this.id__()); this.aboutToBeDeletedInternal(); } private __mediaFileUri: ObservedPropertyObjectPU; get mediaFileUri() { return this.__mediaFileUri.get(); } set mediaFileUri(newValue: MediaFileUri) { this.__mediaFileUri.set(newValue); } private __want: ObservedPropertyAbstractPU; get want() { return this.__want.get(); } set want(newValue: Want) { this.__want.set(newValue); } private __myFileContent: ObservedPropertyAbstractPU; get myFileContent() { return this.__myFileContent.get(); } set myFileContent(newValue: string) { this.__myFileContent.set(newValue); } private __fileAssets: ObservedPropertyObjectPU; get fileAssets() { return this.__fileAssets.get(); } set fileAssets(newValue: FileAssetType) { this.__fileAssets.set(newValue); } private __isEdit: ObservedPropertySimplePU; get isEdit() { return this.__isEdit.get(); } set isEdit(newValue: boolean) { this.__isEdit.set(newValue); } private __uriInfo: ObservedPropertyObjectPU; get uriInfo() { return this.__uriInfo.get(); } set uriInfo(newValue: fileUri.FileUri) { this.__uriInfo.set(newValue); } private __currentPermission: ObservedPropertySimplePU; get currentPermission() { return this.__currentPermission.get(); } set currentPermission(newValue: number) { this.__currentPermission.set(newValue); } private __myUri: ObservedPropertyAbstractPU; get myUri() { return this.__myUri.get(); } set myUri(newValue: string) { this.__myUri.set(newValue); } private __myFileName: ObservedPropertyAbstractPU; get myFileName() { return this.__myFileName.get(); } set myFileName(newValue: string) { this.__myFileName.set(newValue); } private controller: web_webview.WebviewController; private ports: web_webview.WebMessagePort[]; async aboutToAppear() { Logger.info(`aboutToAppear start`); await this.init(); if (this.want.parameters && this.want.parameters['linkFileName']) { this.fileAssets = this.want.parameters['fileAsset'] as FileAssetType; this.myFileName = this.fileAssets.displayName; this.myUri = this.want.parameters['uri'] as string; let isSandbox: boolean = await dlpPermission.isInSandbox(); if (isSandbox) { let res = await dlpPermission.getDLPPermissionInfo(); Logger.info(`res ${JSON.stringify(res)}`); this.currentPermission = res.dlpFileAccess; if (this.currentPermission === 1) { this.readDLPFile(); } else if (this.currentPermission === 2) { this.isEdit = true; this.readDLPFile(); } else { this.isEdit = true; this.readDLPFile(); } } } else { this.isEdit = true; await this.readFile(this.myUri); } } // 初始化函数 async init() { this.isEdit = false; this.myFileName = ''; this.myFileContent = ''; } /** * 读取文件内容 */ async readFile(myUrl: string) { // 初始化一个fd为-1; let fd: number = -1; let file: fs.File; try { file = await fs.open(myUrl, fs.OpenMode.READ_WRITE); Logger.info(`get File success,fd:${file.fd}`); fd = file.fd; this.uriInfo = new fileUri.FileUri(myUrl); Logger.info(`get uriInfo success, fileName:${this.uriInfo.name},filePath:${this.uriInfo.path}`); } catch (err) { Logger.error(`open file failed,errCode:${err.code},errMessage:${err.message}`); await fs.unlink(myUrl); } let isDLPFile: boolean = await dlpPermission.isDLPFile(fd); if (!isDLPFile) { this.myFileName = this.uriInfo.name; this.myFileContent = await this.mediaFileUri.readFileContent(myUrl); } else { this.mediaFileUri.OpenDlpFile(myUrl, this.uriInfo.name, fd); } } async readDLPFile() { try { let file = fs.openSync(this.myUri, fs.OpenMode.READ_ONLY); let buffer = new ArrayBuffer(BUFFER_SIZE); let readOut = fs.readSync(file.fd, buffer, { offset: 0 }); this.myFileContent = bufferToString(buffer); } catch (err) { Logger.info(`the err is ${err.code},message:${err.message}`); } this.myFileContent = await this.mediaFileUri.readFileContent(this.myUri); Logger.info(`the myUri is` + this.myUri, 'this.fileName' + JSON.stringify(this.fileAssets)); } async getFilenameByUri(myUri: string): Promise { // 获取文件名称 this.myFileName = (myUri.split('/').pop()) as string; Logger.info(`the fileName is ${this.myFileName}`); } initialRender() { this.observeComponentCreation2((elmtId, isInitialRender) => { Stack.create({ alignContent: Alignment.Bottom }); Stack.height('100%'); Stack.padding({ left: 24, right: 24 }); Stack.backgroundColor(this.currentPermission === 1 ? { "id": 16777230, "type": 10001, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" } : Color.White); }, Stack); this.observeComponentCreation2((elmtId, isInitialRender) => { Column.create(); }, Column); this.observeComponentCreation2((elmtId, isInitialRender) => { Column.create(); Column.width('100%'); Column.alignItems(HorizontalAlign.Start); Column.justifyContent(FlexAlign.SpaceBetween); }, Column); this.observeComponentCreation2((elmtId, isInitialRender) => { Text.create(this.myFileName ? this.myFileName : { "id": 16777227, "type": 10003, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); Text.fontSize(28); Text.fontWeight(700); Text.margin({ top: 10 }); }, Text); Text.pop(); this.observeComponentCreation2((elmtId, isInitialRender) => { Row.create(); Row.width('100%'); Row.justifyContent(FlexAlign.SpaceBetween); Row.alignItems(VerticalAlign.Center); }, Row); this.observeComponentCreation2((elmtId, isInitialRender) => { Row.create(); }, Row); this.observeComponentCreation2((elmtId, isInitialRender) => { Text.create({ "id": 16777220, "type": 10003, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); Text.fontSize(12); Text.padding({ top: 4, bottom: 4 }); Text.margin({ right: 6 }); Text.fontColor({ "id": 16777229, "type": 10001, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); }, Text); Text.pop(); this.observeComponentCreation2((elmtId, isInitialRender) => { Row.create(); Row.padding({ left: 8, right: 8, top: 4, bottom: 4 }); Row.borderRadius(16); Row.backgroundColor({ "id": 16777232, "type": 10001, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); }, Row); this.observeComponentCreation2((elmtId, isInitialRender) => { Text.create({ "id": 16777221, "type": 10003, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); Text.fontColor({ "id": 16777228, "type": 10001, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); Text.fontSize(12); }, Text); Text.pop(); this.observeComponentCreation2((elmtId, isInitialRender) => { Image.create({ "id": 16777244, "type": 20000, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); Image.width(6); Image.height(12); Image.margin({ left: 4 }); }, Image); Row.pop(); Row.pop(); this.observeComponentCreation2((elmtId, isInitialRender) => { Row.create(); }, Row); this.observeComponentCreation2((elmtId, isInitialRender) => { Image.create(this.isEdit ? { "id": 16777239, "type": 20000, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" } : { "id": 16777238, "type": 20000, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); Image.height(28); Image.width(28); Image.margin({ right: 16 }); Image.onClick(() => { if (this.currentPermission !== 1) { this.isEdit = true; } }); }, Image); this.observeComponentCreation2((elmtId, isInitialRender) => { Image.create({ "id": 16777243, "type": 20000, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); Image.height(28); Image.width(28); Image.onClick(() => { this.isEdit = false; this.controller.runJavaScript('scheduledSaveContent()'); }); }, Image); Row.pop(); Row.pop(); Column.pop(); this.observeComponentCreation2((elmtId, isInitialRender) => { Web.create({ src: { "id": 0, "type": 30000, params: ['editor.html'], "bundleName": "com.example.fileEdit", "moduleName": "entry" }, controller: this.controller }); Web.javaScriptProxy({ object: { callbackScheduledSave: (html: string) => { Logger.info('callbackScheduledSave start'); if (this.myFileContent === html) { Logger.info('callbackScheduledSave the same value return'); return; } this.myFileContent = html; let file = fs.openSync(this.myUri, fs.OpenMode.READ_WRITE | fs.OpenMode.TRUNC); let writeLen = fs.writeSync(file.fd, this.myFileContent); Logger.info(`write data to file succeed and size is:${writeLen}`); fs.closeSync(file); }, promptPopup: () => { Logger.info(`promptPopup start`); try { promptAction.showToast({ message: { "id": 16777226, "type": 10003, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }, // 弹窗延迟时间 duration: 2000 }); } catch (error) { let message = (error as BusinessError).message; let code = (error as BusinessError).code; Logger.error(`showToast args error code is ${code}, message is ${message}`); } } }, name: 'callBackToApp', methodList: ['callbackScheduledSave', 'promptPopup'], controller: this.controller }); Web.enabled(this.isEdit); Web.height(this.currentPermission === 1 ? { "id": 16777224, "type": 10003, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" } : { "id": 16777223, "type": 10003, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" }); Web.backgroundColor(this.currentPermission === 1 ? { "id": 16777230, "type": 10001, params: [], "bundleName": "com.example.fileEdit", "moduleName": "entry" } : Color.White); Web.onRequestSelected(() => { this.controller.runJavaScript('showButton()'); }); Web.onPageEnd(() => { // 1、创建两个消息端口。 this.ports = this.controller.createWebMessagePorts(); this.ports[1].onMessageEvent((result: web_webview.WebMessage) => { let msg: string = ''; if (typeof (result) === 'string') { msg = msg + result; } else if (typeof (result) === 'object') { if (result instanceof ArrayBuffer) { msg = `${msg} length is${result.byteLength}`; } else { Logger.info('not support'); } } else { Logger.info('not support'); } }); // 2、将另一个消息端口(如端口0)发送到HTML侧,由HTML侧保存并使用。 this.controller.postMessage('__init_port__', [this.ports[0]], '*'); try { if (this.ports && this.ports[1]) { this.ports[1].postMessageEvent(this.myFileContent); } else { Logger.error(`ports is null, Please initialize first`); } } catch (error) { Logger.error(`ErrorCode: ${error.code}, Message: ${error.message}`); } }); }, Web); Column.pop(); Stack.pop(); } rerender() { this.updateDirtyElements(); } } ViewStackProcessor.StartGetAccessRecordingFor(ViewStackProcessor.AllocateNewElmetIdForNextComponent()); loadDocument(new FileEdit(undefined, {})); ViewStackProcessor.StopGetAccessRecording(); CpurgeVariableDependenciesOnElmtIdrmElmtId myUrlupdateStateVarsEV-HBd4^i|;Z~ Dc1RqBTb 0Sv%Vy=\{/#%2V'hVV) "#e`"#47e"#7e"#e"# 7e ##eQ#eR#07e^R#7eR#.7eR#7e%S#=S#7eKS#b7eS##7eS#7eS#N7eT#$7ea#ey#e#7e#7e#%7e#e#e#e#e#7e#e-#e;#eI#eW#ee#es#e#e#7e#e#e#X7e#7e#e#e#e1#eI#ey#K7e#a7e#G7e #ei#e#e#?7e#e#7e#7e#e#e3#eK#ec#e{#e#67e#>7e+#Y7e#e#17e#7e#e#e# 7e##7eY#eq#e#e#e# 7e # DDDDE`a`B$QE~ a`Ba> a? a ` Ba `a ` . a> a`. e~ a`B a> a? a ` Ba `a ` . a> a`.e rDDDDE~ a`Ba>a? a ` Ba `a ` . a> a? a ` B a `a ` . a> a`.e<DpDDDaaba``Ba``a``a`d)DDD~ a5$(aa`Ba`|e#DpDD~ a`Ba>a`.e'D`=`=EE&aa~ a ` Ba`- a`a ` Ba<a ` Ba `a 3 #a `0 ~ a ` B a>!a ? a ` Ba `a ` Ba ` .  a >  a `. ?a ` Ba> a `a `/ `a ` Ba>a ` 7 $Q6?"a ` B#a>a `a ` B%a >a ` 7' a `/) M!?+a ` B,a>a >a `/. ~ a ` B0a>a `.2 e#DpDD~ a`Ba>a`.e#DpDD~ a`Ba>a`.e L%D` =` =D~ a`Ba>a`.`a`Ba>a3"a`/e#DpDD~ a`Ba>a`.ebD`DqD`a>C?`a< .C>`aaCL`aaCK`a aC M`aC I`aaCJ`d DDDEEEa~ a ` Ba>4a `. va~ la ` B1a ` B/a ~ la ` B 1a ` B 0 zN`zjwa xa `z] ` z ya `zk ` zV ` z`a<0 a ` Bha`a `.! `a `ab#O` ` MVa~ a ` B$a >3a `a ` B& ( a >* ) a `a ` B*Y , a > - a ` .. a ` ddad8T DDDE~ Oa`B;a`a`.~ a`Ba< 9a>=a`/MMa~ a`Ba< 9a><a ? a ` B a `a ` .  a >  a `/ e >IK DDDEEa~ a`Ba>8a` a>+ a` a> a`.`a ` BIa ` B @a`a `a `/ `a `abO` ` a~ Oa ` Bca`a ~ Oa ` B5a ` B7a `/ a~ a ` Ba>ia `a ` BG  a >  a `. `a`BGa`dMca`a~ a ` B!a>Aa `a ` B# % a >) & a `a ` B'Y ) a > * a `.+ ba`-a`ddadHa DDDDa`a`BIa`BCa`a`.`a`abO``a`ab'O,~ a`Ba>Da` a> a`. M:a`a~ a`Ba>Ea `a ` B  a >  a `. dad v8 m|DDD>2a`=b a`= ba`=@ba`a`=?Ra`a`*a`=0pa5q{aa`Ba`|e DDDEa~ a`Ba< 9a >Pa `/ `aaCJ`a~ Ha ` BBa`a `. C I`a ` B Ia`BUa`-`a`abO``a`a ` B^a ` - a`Bka`Bja~ a`Ba< 9a >Qa `  a >  a `/  `a`B"Sa`a `.$ `a`ab&O``ba`a`a ` B'Ja ` B)+$`ab ,$`a ` B-Ka`a `a ` B/Ja `a ` 71 a ` B385 `a ` B7La`a `a ` B9Ja `a ` 7; a ` B=g8? `a ` BAMa`a `a ` BCJa `a ` 7E a ` BGj8I `a`!Ka`LN2?Ma`BNa>Ka `a ` BPKa `/R ?Ta`BUa>La `a ` BWLa `/Y ?[a`B\a>Ma `a ` B^Ma `/` dad  DDDDaa`a ` BIa`BTa`a `. `a`abO``a`a ` Bfa`- a`#QM$Q&~ a ` B a< 9a >Xa `/ `#QM$QU`a ` B^a ` - a`a ` BFa`#QM$Q(`a ` BJa ` Bda `a ` Bka ` . MM7a~ a ` Ba< 9a >Wa `  a > a `/! dadL5 DEEEEE~ Oa ` Bpa`a `a `/ a~ a ` Ba< 9a >[a `/ MMa~ a ` Ba< 9a >\a ? a ` B a `a` .   a >  a `/ `$Q)`a`B;a`a `. `a< .C>M `a`C>eEXKEEEEEEa`a ( Oa`a ( Oa`a ~ Ha ` BBa <0 a ` . CI >a~ a ` Ba < 9a >_a ` a > a ` / a`#Q`a ` B>a < .( $~ Oa ` Bca `a ~ Oa ` B5a ` B6a ` / a~ a ` Ba < 9a >`a `a ` BG  a >  a ` / `a `a ` B!GC#> M@a ~ a ` B%a < 9a >aa ` ' a > ( a ` /) `a ` d`a (+ O+~ a ` B,a < 9a >ba ` /. `d`$?0,a <@ -a 1 a ~ Oa ` B3ea `a ` B5>a ` a7za`a` 08 a ~ :a ` a ` *: aM@a ~ a ` B<a < 9a >Za ` > a > ? a ` /@ `a ` d`$Q1`a ` BB;a `a ` BD>a ` .F `a < .CH> M`a `a ` BJ>CL> `da d>[> DDDEE~ a ` Ba< 9a >ma `/ ~ Oa ` Bca`a ~ Oa ` B5a ` B7a `/ a~ a ` B a< 9a >na `a ` BG  a >  a `/ ~ Oa ` Bpa`a ` BGa `a `/ a~ a ` Ba< 9a >oa `  a >  a `/ ~ Oa ` B ;a`a `." e(DDDD`a`Ba`Ba`a`.e(DDDD`a`Ba`Ba`a`.e uDDDDD?a`BaNaa z`a`.? a`B a Oa a z`a`.?a`Bab a`.e1DpDD<aC<a`Ba`Ba>a`.e DDDDD?a`BaXa?a ` Bz`a`. ? a`B a>a`.?a`BaYa`a`.?a`Ba<a ` Bab(O8aa z`M? a`B!a`.#eDDDDD?a`Ba`-e DDD<a<a`Ba`Ba`-C<a`Baba`7 a`B a3$a`.<a`Ba`Ba>aa<a ` Baba ` 7y`a>~a`0<a`B$QS<a`B aba`7"$Q8<a`B$aba`7&a`B(a<a`B*a`.,M~ a`B.a>a`.0MMa~ a`B2a>a`a`B4 6a> 7a`a`B8Y :a> ;a`.<eyK DDDDD?a`Ba<a`B$QIaa z`M Ja a z `a`. ?a`Baba`.?a`Baba`.?a`BaKa`a`.?a`B a3"a`.#e |DDDDD?a`Ba`-?a`Ba>a`.? a`B a? a`Ba`.?a`Ba?a`Ba`.e DDDDD?a`BaLaa z`a`.? a`B aba`. ?a`Bab a`.?a`BaMa`a`.e(DDDD`a`Ba`Ba`a`.e DDDDD?a`BaHaa z`a`.? a`B aba`. ?a`Baba`.?a`Ba3 a`.e DDDDD?a`Ba`-?a`BaPa`a`. ? a`B aba`.?a`BaQaa z`a`.eDDDDD?a`Ba`-e DDDDD?a`BaRaa z`a`.? a`B ab a`. ?a`BaSa`a`.?a`BaTa`a`.?a`BaUaa z`a`.!e(DDDD`a`Ba`Ba`a`.e(D`DqD<a`Bab'O <aCe DDDDD?a`Ba<a`B$Q<a`BMVaa z `a`. ? a`Baba`.?a`Baba`.?a`BaWa`a`.e(DDDD`a`Ba`Ba`a`.e'DpDD<a`Ba`Ba>a`.e DDDDD?a`Ba?a@a Aa z ` z<a ` B z `a`.?a`BaBaCa 3'z 32z ` zDa z<a ` B z"`a`.$?&a`B'a<a`B)a`.+?-a`B.a<a ` B0ab(2O3Ea4a z5`M7Fa8a z9`a`.;?=a`B>a<a ` B@ab(BOCGaDa zE`M?Ga`BHa`.J?La`BMa3Oa`.P?Ra`BSa3Ua`.Ve |DDDDD?a`Ba`-?a`Ba>a`.? a`B a? a`Ba`.?a`Ba?a`Ba`.e(DDDD`a`Ba`Ba`a`.e(DDDD`a`Ba`Ba`a`.e(DDDD`a`Ba`Ba`a`.e(DDDD`a`Ba`Ba`a`.e DDDD>a`a>(O`a` aN`a>(OZ`a?,&$Q/>a` a>} a`a`B a> aM~ a`Ba>a`.M~ a`Ba>a`.eDEEEEEEE`a ( Oba ` a`a ( Oa`a `a `a 2 a `` a`a >( O`a `C `a ? a ~ 2a   a `a >a   C `a `a ` Ba > a a > a` 0 C `a `a ` Ba >a >a >a` 0 C `a ?a a `a >a  C `a ?"a a `a >a # C% `a ?'a a `a >a ( C* `a ?,a ba ` -a `a >a . C0 `a `a ` B2a >a >a >a` 04 C6 `a `a ` B8a >a >a >a` 0: C< `a ~ a ` B>a @ CB `a Da CE `a ` BGa `a ` .I `d DDDa~ a`Ba>a`.`a`Ba`-`a`abO```a`B a`B $`a`B a`Ba>a`7$`a`a`B a`Ba>a`7C`a`a`Ba`BsC`a`a`B! a`B#a>ja`7%C'~ a`B)a`-+`a`ab-O``a`$~ a`B.a`-0`a`ab2O``a~ a`B3a>a?5 a ` B6a `a ` .8 :a> ;a`.<`a`a`B>C@`a`BBab(DO`a`BEa`-GMP`a`BIab(KO`aCL`a`BNa`-PM`aCR`a`BTa`-VMH`aCX`a`BZa`a`B\a`.^`a`ab`O``dad DDD`a`Ba`Ba`-`a`Ba`Ba`- `a`B a`Ba`-`a`Ba`Ba`-`a`Ba`Ba`-`a`Ba`B a`-"`a`B$a`B&a`-(`a`B*a`B,a`-.`a`B0a`B2a`-4?6a`B7a`-9a`B;Ca`a`B=a`-?a`.A`a`BCa`-Ee DDDE~ a`Ba>a `. <a`Ba`(O ~ a`Ba>a `.  e<a`C ~ Oa`B ca<a ` Ba ~ Oa ` B5a ` B7a ~ Oa ` B5a ` B a `/ a~ Oa`Bpa`a ` BGa <a ` B a `/" a~ a`B$a>a ` & a > ' a `.( ~ Oa`B*;a`a `., e DpDD`a`Ba`Ba`-d DpDD`a`Ba`Ba`-d <DDDba`= ?a5%;aa`Ba>a a `4.a  >a a `4 a  > a a `47a  > a a `4!a  >a a `4/a  >a a `4 a  >a a `4 )a  >a a `4 a  >a a `4 -a  >a a `4 a  >a a `46a  >a a `4#a  >a a `4(a  >a a `4a  >a a `41a  >a a `4 a  >a a `40a  >a a `4"a  `4&z`4+z`44z`43z `4"*z#`4%,z&`4(5z)`a?+a`B,a?.a`B/a`-1a`.3?5a`aaa6a`*8?:a`B;a`-=e uDDDDa`a`a ` Ba>a `. a`Ba`-C~ a`B a>a`a`B a> a`.dad ep4DPDaDra`aC`a>C`a>Cdad &/9D` =` =<a`Ba3 a?a`/<a`Ba3a? a`/ <a`B a3a?a`/<a`Ba3a?a`/?a`Ba`-<a`Ba3a? a`/!<a`B#a3%a?&a`/'<a`B)a3+a?,a`/-?/a`B0a`-2<a`B4a36a?7a`/8<a`B:a3< a?=a`/>?@a`BAa`-C<a`BEa3Ga?Ha`/I?Ka`BLa`-N?Pa`BQa`-S<a`BUa3Wa?Xa`/Y<a`B[a3]a?^a`/_<a`Baa3ca?da`/e?ga`Bha`-j?la`Bma`-o?qa`Bra`-t<a`Bva3xa?ya`/z?|a`B}a`-a`a`-e DpDD`a`Ba`Ba`-d DpDD`a`Ba`Ba`-d DpDD`a`Ba`Ba`-d DpDD`a`Ba`Ba`-d DpDD`a`Ba`Ba`-d DDD~ a`Ba>a`.~ a`Ba=a>aaz `z Y`a`. MUa`a`BYa`a`Ba~ a`Ba>a `  a >  a `  a >  a `. e!6YSDDDD`a`Ba`Ba`a`.`a`Ba`Ba`a`. `a`B a`Ba`a`.`a`Ba`Ba`a`.`a`Ba`Ba`a`.`a`Ba`B a`a`."`a`B$a`B&a`a`.(`a`B*a`B,a`a`..`a`B0a`B2a`a`.4e DDDa~ Oa`Bca`a ` Ba ~ Oa ` B5a ` B6a `/ a? ,a< -a a~ Oa`B ea`a ` BGa `a :a ` a `0 a`a~ :a`a `* CMMa~ a`Ba>a`a`B a> a`a`BY a> !a`."`a`a`B$a`B&ua`a`B(a`.*`a`ab,O``C-~ a`B/a>a`a`B1 3a>a?4 a ` B5a`a ` B7a `.9 ;a`/<dad K  DDDEaba`aa~ Oa ` Ba`a ~ Oa ` B5a ` B7a `/ `a `ab O` ` a~ a ` B a>a `a ` B G  a >  a `. `a`BGa`a~ ta ` Ba `a  C~ a ` Ba>a `a ` Ba ` B] a > ! a `a ` B"a ` B$ & a > ' a `.( Na~ a ` B*a >a `a ` B, . a >* / a `a ` B0Y 2 a > 3 a ` .4 ~ Oa ` B6a `a ` .8 `a `a b: O` ` ~ a ` B;a`a `.= `a `ab?O` ` a`#QM$Qd`a`a ` B@a ` BB]CD`a`a ` BFa ` BHua `a ` .J `a `a bL O` ` CMM:`a ` BOa ` BQra`a `a ` BSa ` BU]a `a `0W dad D`DqD`a`Ba`-eDpDDD`a`Ba'O`a`a`BC`a`Ba' O`a`a`B C `a`Ba'O`a`a`BC`a`Ba'O`a`a`BC`a`Ba'O`a`a`BC!`a`B#a'%O`a`a`B&C(`a`B*a',O`a`a`B-C/e DPDaDrDe DpDD`a`Ba`Ba`-d DpDD`a`Ba`Ba`-d _DDDD~ ^a`BZa>]a`a ` a a`a`B\a?[a `a  a  aa ` a `/  a`dD@DQDb3_|e0D`DqDD`a>bCe`a`Cg`abCd`d LDDDDa~ fa`Ba`a`Bda`a`Bga`a ` Bea `a `1e LDDDDa~ fa`Ba`a`Bda`a`Bga`a ` Bea `a `1e 3DDDpa5ijaa`Ba`a`a>ca|e LDDDDa~ fa`Ba`a`Bda`a`Bga`a ` Bea `a `1e LDDDDa~ fa`Bha`a`Bda`a`Bga`a ` Bea `a `1e           k?          I 8CRC WW CRC XX                  B  ! % -<- BBN]N ee     ! ! ! 4       *! ! ! ! *4 4    ! !      /              k   z           {   f ; ; ;  .  5  - ;H&5 & FF'  #, <, #,       ! ! 2  ! !     k     < 6 2   ! !                   GY ! ! r q *p *o )n <m 4lk    k n   9 `  a k k-x _ l , u         /            k  }Y !  !  P Z H{z '   7@@NZZ {n    k   w  /            JY ! ! P     8G8 LL {                   /     /        k    /  /            k    J Y ! Z ! Z !++=IIZ Z AL #, %--  {  ' 7BBQ__  v      /  \         /  /         K fY ! ! T  :499  ' 3>> x   k  k  k   k    /     =ZY ! ! '2'L ""      z  \    \   0  /         z    /         M      M     M     I     z   z    Y ! Ζ  ! ܖ  B ! #! .;;  $=E= ' 6' ' 6' & 5& Q/ / .  p   /       /     {  /  /  /       /          I Y !  !   + F  !!  (  {  155 r      /      /           \  k  |   pY ! O ! P  ! &*    FUF ZZ     {         /     \  /         z >    N     /        z  X   /         z     \   z  @        /      1         /         z   \  k  |  ^   Y !  T Z ! O  '9'?R? B  (,,  ) #(!GO!O!   "MQ"Q"" ŗ Η !-* 9A ){  "=A"A"    X     z     /         z     /         z  pY ! T Z  ! O $ 6>>$ - T]]% ! !   % ! !        k    k  <    A D      \  " .      k  k  k          M    )    " ="AjA" "   (        \                >        /             r  -,=> I> =N & 1& #7 %{ !/:!:GU!U!w            k  k  k  k  O     'P'     5             k  k  k  <    B    % ! !  !<    B        k  k    9       I (    (          k  k  k  k    D    A    D % ! !      \  Z #  /"          k  k  k  D     * <e<     % ! !  % .          k k k Z   x        k            k          k  m      @   + !s a   ` "  26_6  ; ?h?   "  !    k  k  5      " % ! !      % ! !  % ! !  % ! !     /    \    ]    \   k          O  g5    b  ! &,$$1."%)")5G"G($t"          /       \  ]           \      \      \         \         \         \          \      \      \   \  \     ! !      0:90=L=& $ $ "?;OU-5A6GK 9NT5<B6MS'#A@#D#J#.7;3AE'p#    k       >    \  \    \   />   /          k  \   \   \   \  \    \     I  ! !  $9$  3  . +% #2# 77)  / 4""r    h$    k' ! ! '%    k   \  k?   \       /     /        k  i  Z  $ 3(-#/ ;T;#'4 = '$NW$W$%& ! !  ! !    4                                                                                                     k       \ ! !        ~~~~~~ }.  % '       \       : ! !   ''77(    \  \  ( ! ! )   ~   { h | ~   ~   ~   { h |    ~   } f ~ ~   { h |       l  ' { '  ' { ' { ' { '  ' z ' { '  ' { '  ' v ' x ' * ! !  ! !  ! !  ! !  ! !     l  k   x  i  /   /   /             b $3)R)3   R +* (' )IN)N]e)e)v+    k  k  k  k  k  k  k  k  E ! !  4,52./9-2,      /     /      1       /                  \           ! ! ŗ Η Z # /)& /7  !0! z  &//:FF #E #% 1CR C1 s-    /?      /       k  /     \             /            k         /    \     |       ! P !  Z   !( /77  / 9KKWii {  5>>LXX  '?'!   'I'! *1D {p.   ! ! /    \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  Z Y ! !  3 $  "      ) % "    0  ! ! !  -1 ! !     ! !         1        1  Lְ !  Η ɰ ! +4 51@1I  2  ְ! ! 3       \  Y 0 2 ! !  n4, ! ! !    ! . ;, ! ! ! !   ! . ;          9  !  !   5   /      , ! ! !    - :, ! ! !    - ::L%N35]:P##g$$%N&&R'Z((9*++,-.1G223346^78[849;]<d>?@ ADDKE GGdHI(K]KLLLMMWNPK !:}S -CDIDATxyp\ŝ?$- CH VH6ne7GmŁ$$E6TͲTb 0a;6^la[u?4Q?Io$VM4{ݯ׿_@)F1߁2 x  Yw!hl o솠u뾆Y4# $ %m<{ORuddbNx8R[O屃yЄHsW$:KPD@ |}PsvԱfnïہ(:H*j}-pԷycZF6&֢8E *ߌ"(J)Oxx <cȿ!(qT \կ?&c4T/'PxD03 OQI`܍.ӋLku^oq=OچԽA fNPT >6Zon,#|"l0w3$@[2hhP; ml>E㢻S<.>q\q, })vuj{/b@P@ٛ5?*ƴFG)L=$7抄*\& a@>%)<1WZeHN 6i[] =P|QX"W-Ȍl@/CCoJűeޭ=K+˄+|&Н ,2>4eB[6R bYN0t`Z6ď_]h^nUsjZJC* \unY%8(&e限2` EvR ¢K9zVm9|GZD`wk̕,ܡ'WqU'?syXBKuv Ku!OM#Eç0|V"O"f ma%*K : 6!}FœK(EÅ5҇tnOr)aP9&E~'L-6!%XB!+!>5)WTxMk̥p)!0K/Oj:4S\亊$ڇ*O`SH# +"ɔh chņT\2"LDAq9ΎTmӅbZ'[)g|Th)P /Q,lY0N(,5Z(6!m w-Հ#гq8JH 2_u{S.e)#܏ X&|mW~R2@EHo+e+ eOQPhtB-@ \ Y= VqBoU&7חNCw U $4hG4gf\Bw"z2)}u 4*CFFtmˆ\ádђ B Kggœ<хc%"=>B]1%(8Z #@s2`Yy\V{S{ڑ2է-eW#dFppp|X9ښ*Q!U:a<3>h+w\#AUKzش JO^oj0#7,vfg;<ٮe$auY3==(D>,jo]&K$VH(E+{*ֵuv}jMqGcւ3%Ǿ6}9fWH}$$cB+Wͤq3>:.=>5wrHՐ,V/5ÿ"N2_&Pq#UCB/Hx7f`p oί,- $1@G AWQpB85B Ek#\(VSԿ9pB.诒>ϳ/i]32!oS7]4AApIuVvqݯ4] EB78јk>32 #}W91!9>=d yڏtl㔁HyLc u<ʡ^iacrznXtz^pXHHow3(\4Nɴ2Jvb _[J EHz~`ۨvš 5B?&`YE$ܧ}=)ͨzO-=)MZ:íUkm4qHnT ZF/tr @/)k:7e`~xP,'6vL!lx4YNl< জnZ~?5B@65+t;]i2<Ȧ>BCqH9\hpq#\e`Hxn| 35oi2+Y6$HXBB|װ`:|t8$6ĞhJ:Ob. #UOFzb<(ش5FߨP@gz~ '5]ҋT*|@?@īRl.81@@D@o+j9{װ#|IRB(PFDXJsM?W|t`b뫊\~l>vtxuO*lGH @JvdQ_b ;Q͕GVǀwga>[΄_/1)o?zz6~}1g8 ن r S}m':e xdc/t,X5N70CCRj#9ڥ0Έb1G]YX~ >"k_`30s&]k)+FW`R׎ٲG@nx#V?Nh.nh<6 nwm0I;C$ [a~(|Кt8d:hkႈG@ /FiГ8c9i"d4 g`-:7L09SpX52pOs oشvO\(VFli>NRz|Ch%Fqgg]RVFزMe@e#d ɦv1c1障Jk 4^εTAk'֫ .l] mw_irMu 9wd prx e[ ^Y{PÛ$uapn$限ճ"2`SV8 {BefE],ܤQ|vK7fJб: f7HDДhQ'FIx`-V.l+.#E8| l3rx!|JfE}ڜ9ՙl҃f Y;9E]g+r̓dDB;~M^T%Rg-;)\B/=V cW xc_>QI߰ 'eUԳ#iK]ʔx!kS.j|p)p٩@)NlJNx}ҙpaSO$y4/eZR5dO,frbٰjvЧT 0;3ipm'5UC^67c0ّhɑfvv^yx20ّh=ᇄc)FK'&ʤ>=(e =e*rVVus\0HHZ S RV+|4>>4ϨwP'x栍BvM "xU:4Y4 reUq8k^<Eo-,Ր[5?qR:fWgn6CT:L>L^pugHwU:9U\{[TG^íy}X_pN׀ۺ_L{F^T4xi=wga6mAN2%:e`lX$~\=ZjsBє7?L?y~r!ܳ hS"aXA)5M}>х?쮟_TiǶ쩏,?yMs PqfDܱ:GW QO6/GgQ.*E$Ĺ{ߗ&⋿x4^EcDd?ҔEu~HD+@y"=n}'<]k)/~ b:H8#u]#dMOͿT4jaE;_?N[t뜩IT=VF+0.}pn*&ǻpjKBY\+g~]sqgWeZ_y}kEA":EO)5l^}>3Szsu,KkzY;s|Xw@=p^X{8gvpMJ~ t4)!-82VR|ԑ§;F8gcIN/+@.S_35Q|;`s`̀   otì#{{vg2UUk0*s#mڊ/ [׌֓y ^g[%25-\pW*)y'«~;@f>y~DfGfiP B | [)Gvk;hT0 9}f)Q@Vₓ p3֦pEFXpϙe>#A`V&4J5A2N Fԅ@to7ٚޙH0e[<k0wSEpI[/jדf r\B%'6:H ̚q):kZ ly-V˳h?TcADʨ7P]qK+^W$!82)!5 tM e [\wh;>NN om?~K<]C$H8Z6\о"|.۳hg=IВ 8Y !0RX^!E_rb|֥»H!w l_f6| sCڏ g6vud~}^x7JBq hmy3iuE%(WԒ u8ʗ2;dհL;rE{7Ix|B6͉k)l(XBDXJ%Bs3Mg$sŻ X\u6 A}Ӫl3Mo`N:"L:`oFnVs5k=e:Ar7568(¶]7`s=8DBmnw46dBJ9 ؄*abackPK !:resources/base/media/delete.svg删除PK !:>Н resources/base/media/ic_docs.svg ic_docs PK !:=n"resources/base/media/ic_folder.svg ic_folder PK !:. 'resources/base/media/ic_public_edit.svg Public/ic_public_edit PK !: /resources/base/media/ic_public_edit_disable.svg Public/ic_public_edit PK !:2G! .resources/base/media/ic_public_edit_enable.svg Public/ic_public_edit PK !:"resources/base/media/ic_saveas.svg ic_saveas PK !:.Іresources/base/media/icon.pngPNG  IHDRrr݅}KiTXtXML:com.adobe.xmp -CDIDATxyp\ŝ?$- CH VH6ne7GmŁ$$E6TͲTb 0a;6^la[u?4Q?Io$VM4{ݯ׿_@)F1߁2 x  Yw!hl o솠u뾆Y4# $ %m<{ORuddbNx8R[O屃yЄHsW$:KPD@ |}PsvԱfnïہ(:H*j}-pԷycZF6&֢8E *ߌ"(J)Oxx <cȿ!(qT \կ?&c4T/'PxD03 OQI`܍.ӋLku^oq=OچԽA fNPT >6Zon,#|"l0w3$@[2hhP; ml>E㢻S<.>q\q, })vuj{/b@P@ٛ5?*ƴFG)L=$7抄*\& a@>%)<1WZeHN 6i[] =P|QX"W-Ȍl@/CCoJűeޭ=K+˄+|&Н ,2>4eB[6R bYN0t`Z6ď_]h^nUsjZJC* \unY%8(&e限2` EvR ¢K9zVm9|GZD`wk̕,ܡ'WqU'?syXBKuv Ku!OM#Eç0|V"O"f ma%*K : 6!}FœK(EÅ5҇tnOr)aP9&E~'L-6!%XB!+!>5)WTxMk̥p)!0K/Oj:4S\亊$ڇ*O`SH# +"ɔh chņT\2"LDAq9ΎTmӅbZ'[)g|Th)P /Q,lY0N(,5Z(6!m w-Հ#гq8JH 2_u{S.e)#܏ X&|mW~R2@EHo+e+ eOQPhtB-@ \ Y= VqBoU&7חNCw U $4hG4gf\Bw"z2)}u 4*CFFtmˆ\ádђ B Kggœ<хc%"=>B]1%(8Z #@s2`Yy\V{S{ڑ2է-eW#dFppp|X9ښ*Q!U:a<3>h+w\#AUKzش JO^oj0#7,vfg;<ٮe$auY3==(D>,jo]&K$VH(E+{*ֵuv}jMqGcւ3%Ǿ6}9fWH}$$cB+Wͤq3>:.=>5wrHՐ,V/5ÿ"N2_&Pq#UCB/Hx7f`p oί,- $1@G AWQpB85B Ek#\(VSԿ9pB.诒>ϳ/i]32!oS7]4AApIuVvqݯ4] EB78јk>32 #}W91!9>=d yڏtl㔁HyLc u<ʡ^iacrznXtz^pXHHow3(\4Nɴ2Jvb _[J EHz~`ۨvš 5B?&`YE$ܧ}=)ͨzO-=)MZ:íUkm4qHnT ZF/tr @/)k:7e`~xP,'6vL!lx4YNl< জnZ~?5B@65+t;]i2<Ȧ>BCqH9\hpq#\e`Hxn| 35oi2+Y6$HXBB|װ`:|t8$6ĞhJ:Ob. #UOFzb<(ش5FߨP@gz~ '5]ҋT*|@?@īRl.81@@D@o+j9{װ#|IRB(PFDXJsM?W|t`b뫊\~l>vtxuO*lGH @JvdQ_b ;Q͕GVǀwga>[΄_/1)o?zz6~}1g8 ن r S}m':e xdc/t,X5N70CCRj#9ڥ0Έb1G]YX~ >"k_`30s&]k)+FW`R׎ٲG@nx#V?Nh.nh<6 nwm0I;C$ [a~(|Кt8d:hkႈG@ /FiГ8c9i"d4 g`-:7L09SpX52pOs oشvO\(VFli>NRz|Ch%Fqgg]RVFزMe@e#d ɦv1c1障Jk 4^εTAk'֫ .l] mw_irMu 9wd prx e[ ^Y{PÛ$uapn$限ճ"2`SV8 {BefE],ܤQ|vK7fJб: f7HDДhQ'FIx`-V.l+.#E8| l3rx!|JfE}ڜ9ՙl҃f Y;9E]g+r̓dDB;~M^T%Rg-;)\B/=V cW xc_>QI߰ 'eUԳ#iK]ʔx!kS.j|p)p٩@)NlJNx}ҙpaSO$y4/eZR5dO,frbٰjvЧT 0;3ipm'5UC^67c0ّhɑfvv^yx20ّh=ᇄc)FK'&ʤ>=(e =e*rVVus\0HHZ S RV+|4>>4ϨwP'x栍BvM "xU:4Y4 reUq8k^<Eo-,Ր[5?qR:fWgn6CT:L>L^pugHwU:9U\{[TG^íy}X_pN׀ۺ_L{F^T4xi=wga6mAN2%:e`lX$~\=ZjsBє7?L?y~r!ܳ hS"aXA)5M}>х?쮟_TiǶ쩏,?yMs PqfDܱ:GW QO6/GgQ.*E$Ĺ{ߗ&⋿x4^EcDd?ҔEu~HD+@y"=n}'<]k)/~ b:H8#u]#dMOͿT4jaE;_?N[t뜩IT=VF+0.}pn*&ǻpjKBY\+g~]sqgWeZ_y}kEA":EO)5l^}>3Szsu,KkzY;s|Xw@=p^X{8gvpMJ~ t4)!-82VR|ԑ§;F8gcIN/+@.S_35Q|;`s`̀   otì#{{vg2UUk0*s#mڊ/ [׌֓y ^g[%25-\pW*)y'«~;@f>y~DfGfiP B | [)Gvk;hT0 9}f)Q@Vₓ p3֦pEFXpϙe>#A`V&4J5A2N Fԅ@to7ٚޙH0e[<k0wSEpI[/jדf r\B%'6:H ̚q):kZ ly-V˳h?TcADʨ7P]qK+^W$!82)!5 tM e [\wh;>NN om?~K<]C$H8Z6\о"|.۳hg=IВ 8Y !0RX^!E_rb|֥»H!w l_f6| sCڏ g6vud~}^x7JBq hmy3iuE%(WԒ u8ʗ2;dհL;rE{7Ix|B6͉k)l(XBDXJ%Bs3Mg$sŻ X\u6 A}Ӫl3Mo`N:"L:`oFnVs5k=e:Ar7568(¶]7`s=8DBmnw46dBJ9 ؄*amore-listPK !:O]resources/base/media/save.svg储存PK !:ـ֣!resources/base/media/triangle.svg 下拉三角 PK !:eD&resources/base/profile/main_pages.json{"src": ["pages/FileEdit"]}PK !:)resources/rawfile/editor.html "editorJs"
清单
样式
相册
PK !: "resources/rawfile/editor_style.css/* * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ html { height: 100%; font-family: sans-serif;- webkit-text-size-adjust: 100%; } body { width: 100%; height: 100%; color: #333333; margin: 0; } #editorjs_box { width: 100%; height: 90%; outline: 0px solid transparent; background-repeat: no-repeat; background-position: center; background-size: cover; color: #182431; opacity: 0.9; user-select: none; overflow: scroll; } #editorjs[placeholder]:empty:not(:focus):before { content: attr(placeholder); font-size: 24px; color: #9b9b9b; } .note-checkbox:checked { background: #F88805; border: 1px solid #F88805; outline: none; opacity: 1; } .note-checkbox { width: 18px; height: 18px; line-height: 22.4px; background-color: #ffffff; border: 2px solid #182431; opacity: 0.6;- webkit-border-radius: 50%;- webkit-appearance: none;- webkit-user-select: none; border-radius: 50%; font-size: 0.8rem; margin-right: 10px; margin-bottom: 6px; outline: none; padding: 0; position: relative; display: inline-block;- webkit-transition: background-color ease 0.1s; transition: background-color ease 0.1s; vertical-align: top; cursor: default; user-select: none; } .note-checkbox:checked+span { text-decoration: line-through; margin-left: 10px; color: #F88805; opacity: 0.4; } .edit-box { width: 100%; height: 100%; display: flex; flex-direction: column; } .button-box { width: 100%; height: 60px; background-color: white; display: none; justify-content: space-around; padding-bottom: 6px; margin-bottom: 50px; } .button-box div { display: flex; flex-direction: column; align-items: center; } .button-box img { width: 28px; height: 28px; margin-bottom: 6px; } .button-box span { font-size: 20px; }PK !:-/'/'(resources/rawfile/icon/picture_white.pngPNG  IHDRMM,AXsRGBgAMA a pHYsod!tEXtCreation Time2023:02:02 12:23:21^D,&IDATx^ݽ-`gȜȾL93As# 2:Y gfyz{~zVusP#,OgbZx3GoFLǹ_"ׅqta*!Vk.tOubk9K.f CN6#Q$8%D%L%T7&< |:&m. 3B1% s( \&)V8NR_[ IHpJ'*aJ'jpBӸnRBXWBTP)"4%Vk#4o(i7>kE>%7PN[e NP߇&鷄%>u@h+(So KuC:Nj޳(Eh'aV KJeg焧" K\Vvӑ}danK)wȘؘN>R.lenC8Nm%0XX1QV`)NyOZY Znes[WB>?d6#oYNz2ߜnl)uG,FhZG{s5L-/&bEXдi7d,Jp-Blm?ZJUyfMDrٴUHB$0ٰ^ Q"K+JBdK, Л'{9]Aht7M+Y-3M Lnڈ r:y 2g>^B9y HV#$4]&{0ٸQe[yV=,4L0l~M0!4oz࡭Xy:p׍C^hu~Hv?Nq!4-pًB04Uںywr~[Sf pkr n Lv_Uz6ԫcSro[M!E(r˞|?F2½Ҳ=/Jެz F]?G/cwJ[Vs'h5LAjG\&],ߘX+`V:-s'(5 JOsTB"rY_nA `Z;w /FJ 6.|s#MĶ`_ o%z8أL˥$,ԑkH'sB4 8#Aϛs*}N*Ϛ%>FݢV,\w'Sv=igQU:w2P {K}y̌H[ prMW/ݦɴIP,SseAM`rrIwY7ïZ1@ܾMi&UG֬?7&Tlz:uUnNTO p\=qrҠzf plÒǮL fns=<˂<;1l78GulKŏ޾yYVXw|Ԝtk\f>t>}{nTC~Ss%V߼,]*OCFsSէ$rU}pTT'15Zg\p*mPJ)!k0GкM̴. }y:V3tuX[ձ|xs9*ìӔf422>|Tux9fSub1д>&Ru<:*jLSqu~7[8 qh ZűlUF MK9`+ MTX*=Cl;0Jh`Moػ6 MIr\g Mx'M F M_UiN:MӱNn* l7^tV`zn=:M0i=@:MPTD}`yF M@mQӤ*E]'&`+Bc&4É `L.LhZN Fhд{Ƣ M. 4\`Tn5X6:M%4UK xL[~֑ydSNTDŖ):Rq r*vMEt:VbzM+i=sW-4F & DYFZ}V߶~>矷Q(V*;+!)?)-Q T R Ÿȝ\"w+.lJ(s.[3.GZ?ZmʿA\0ҁtHhbd (YwnOk/K[^e.ݝ,Ю&.]((HIJXJ''sfK', 9P(QJ!,ݖ9k*v8R$k@AB=KHڠ7|-Y{D:B:%T3G4eA_#@W&zE0Vi)v&4ѓ9z ^Lk@:_3$4.#=';Dh1ۂ_#;. =W 1Fڸr)Y12u;.ElHhLAY||ooؐDE.%` L]Κ/MTΉ.jtXD%كHzomXD%?M+"Srx6"*2-g-{gj`EBUt|V$4QAfj|V$4Q.&*0WOG&4QNrEeSF3.+؛<;MXt`AB{3/O `B{td94@hboYd_ub+trV 4QдNG&4Q#O'Dh/NG&k>y ҄&*`.>V$4Q8OMTi%w}=^w:M+zK~W+ӑXJ866 4Qͻ#&IT>leCK MTtLgZ޾y=12Egqݲ'S؈DeVK06&4QY:Mo޼L`cBe"w*Srݼ`KB=ȢpuL؉D/w%4fr;E_Nǣ,0Lh'YR#M%(ez ;MBD5!M)50!4ѫtaF܎ XPDg%$ePmsLi*{:g'P(uN=-w:e/'41tjoU=<%,C-<&B(tav B;O{NR{ : 4q O ,ӳEJ)Sfi@&&wsgKw&$厾'a s[>yYFbY/oS[?hmT%}*Smy=ތ)'V L\@hp B& M. 4\@hp]<+zt<(vjz08N0"w`B%*׿[j{o1ϸȝKHzUW IUBs¸=I'AePs;zʸ D:8SG)So:9sM'L}}\ˑEht23uҭ}P|=jB{*]*|m>e.&4 t.ttpl&n;KלS~kpLT\B6;t2- eZ䝀pK{L;BqL2%,-ߛ|)3xFhT-=VW `lS$N2B2ViR?S{\pb39~.V'׉HC|joJ7F )2.!4=0e]",JӨɸXdy5m O>jd\,Bhz1j`){EM@F LKYzZ}~HɸXT7b`Xɪ2bihei[ܖn7[U5=K,V#iÔNC]9fpkz84p:L_0uF8LhXh)S^ˀًipOē*iJn;w s__Tq bKkm[ނq @`OpZ%ɸXM`ꇩu<EMF L*F{oɸXetkഎq hi-.%8c.8 Lq;8-2എd\,Bh"0KpZEM NyK&4kCpbhB&x'%4kKpbHB M&&C% L&81 X]{t]~9+yՇ7/@S}w5}I`JEA22֌6nKB$VV?_Z;>om΋WZQqkB%&?\o?{JU™]r'0q-n M\*IBJS;HK^lv&KpKB 2MU\'0TKJHu.<uL,Ep+B2p襫tiePdKDd蹫tik&"8؎nW OXDyBqehpVN&0҄㙶 ,'SqV.Ԧ~K`b/% M tY9nLMpily-==;s&(EhWNG#0QDBx2@dު+e9ʠ+0QD BX2@3nJn:'v'4#[ [F=7&z!8+i Y{#0mSG"0M}3Ot.~eP_eJW؜'N&F!8)?S)8 LFpb3BS_Cp&~dpHU98 LNpbuBS~bp8 U M LU$0q4j I`F Ny{p:Z28a?lT2Fa[#ۭ>y97X4 ME`I`_ NEMA`S~[Iȃ&- Lc˃j֐s' _1L,IpڙĒcHyE9mkv$4Xr(N|1ڹ#0&i'BKkC)jvrs&#؂ഃObv%st}*!B#9_F>W&vu?. M9Bh:Z`@1ߋi˭2}?8&Kp:J3,k߻Fr-FטŦ.5@?wq*버dufqBӶ6K-w LTQ=8 MEM=0m1(yɒ&.1j`ʻNǽ$%:C`,Hh!#7[XOש}F L٩غuM`h)]:Ks7u uLĬQSOwt~O`m4$#Z2]g~&BF L  z:_}W'0!41-0er xM/N`~Gh"F L #x6ۆq SnuKLc10e{ M5Z`b0=$_#0i.!䮕9'&"B@Apz: t,#Q&8=\Eh:i\^ds/4] c!'`/NR *Bc&SNe46kʚ/8Iq LǖpR+ oO&4I`"oUu:j˹O"4G`#m; ]~ X4dj*u5`st8iHϭF[=Mťf7 i ט#|-baZV!4O`2}kxyR‘k;&0)<=*AjSXY6%4K`b " $YHi *AiV?wZ%VsnC7ZQkr>*?ᒕs;V~GyS[;ڸtrL-!*sYKnc지+灐V5 #2"K2%Ge/9:ULioVǦ`=Gy#$ >:L\Bi,͎*_s LPTcX3. tFhI`)*On Mylxs:M,J`` B :&R14uOhZ5sKԀ M8s<QM顓C`>D`M빫$0pD58~ܶ&(v;MtzC'03<5M*0oWnp\Di={eZHj)')4Un@*v* ]Ś�⚦縋/MXOci6 ;M > 0ۦ tq&qr48*0=WNLctlx*gJIw]N`ӫc%CB1 Lihɺ LL4}:vmd Lce!:M!0OhZhy1T\ܟoVo`|߶ Z aNS:*J 825Wq0]oLRuVӱ{#&!A`8OjIktm&ɚn^#4vm&cJ`Jp&ce3:w'ƆV1&JV+o-cP*nh#ik dSR@婹ʨ/NQ0Ua6<]s3.!\B sNhSt8Wv!ɌF"0p.똪5_t`]Mp[3nU]*/&Ty a0{) 97NԷ~K``N*w2~jSIs?%0pZ͍U\z[.0ptp2N̍UֹZ`}q]s۔+aI Vs?JniTcl?;"\#e[0e]%&i xQ,/PO] c14Me'^SAMdq L!ޞmJ NcWOSrv?޺MS`q=nL!L));:5Dz7]/ƛ OIXbާ3x&'H'T9+Fƒ\ssmLce~1¢ʚ'L]U;yw0wT(IPʵ4 G8/r/w7\Z2F㒎Ai|aVN+* n$,dL8ZP:/ee8 2& L iZ[>y KHz7 ֓Mrg[G,FhZW'8Y~)ɂXӴi?w}xr+iNɶ,) dtd}jjJw[ۈN>,)Uq{oȚ}dN\cZt;>h.JwTN:,`NHwB M꯭t-a))@h+#kQY*Hh;m0na(/ Oke;a)(LhSBS>%@>%(%]MpYY+]N McO9/[Y4i\ NJ*htMǐgT<,`Y J H%So)]t($%$}sztBܑpcnKe-G^h5)a y8tJ/&JTYp֢ssm9nLh AS0xuޙt*n 0]7nϯG< YwIENDB`PK !:0$$!resources/rawfile/icon/styles.pngPNG  IHDRMM,AXsRGBgAMA a pHYsod!tEXtCreation Time2023:02:02 12:23:27lIDATx^?$ő`V8wx$} <;|'vג`Z@,8<]ŰtWFfētEEdFx-h/߶8k $Cx"iz pNI/-ů[G~guTsK a|sIy/uW$M9a m8؇O[r~&\0}rx L$PS4nśs41T3~xb'!𴅖w-t$M$;Q|!$L ,Q?D~0zc 0W;r곤=KBV pU:I"ibfTS!y {T;bLIF pƐHAZb;S᡻/i'A'etȫC6zg7J#X(%L)4Q]{nOIۘRDu2];n'4Q]S|܁Jp{CDeIHW4zNjI0D2_ZU7Si /(?\= E`$MT(w%{p44IU|$w{JPy6uZֽ4#i]#;1J;CDE#ަϗspf#WlveINܪ4ZelS.&-:_,$MT2lxY^dn*'J]H%/[yx9*^i{-r5zZLמg3]go3>j;Ie4&f6-?N U*2MCD#[MIgADqLI`NE*_[V`I"i٪LMG̗g$U?2a G1a0霭znn7 &%l%a9eRzR9Ӣ ^a6ӥhl?PJcGt[/\El T͔x%`f l[lg&縫*m6jn0)z?V&PL[z&f6t=]Tʹ -:3`0Uf3%N"zldo}غ5wESs[[Ǜ|=ef lD=[t( @*MFLِ~l;2܆p$M**Z^>^^< 2){WZzl@SU2}٢g{,Ң{txE6-:I8E.KSewe 2)m$phJ2)*Т3 4کޛlB>jv:*kU9^$IASsUZsGdfOf6@Uf3%&#'-.[GUߵX{oUALM{dLqNUk]ջEW Texz%%VE}bu1-:3.L{5͔ewe65w{2l UxQZsG[tyF `Y(s2j[5OZL\rK6c1ா_VIKTeZ {vfmZiDI87fYmoZnUؗsZsG[t[p}HIR!*F*SK6Ԗ{X}zRQ2 _Q"3'vwj˗eg0n]sB z'6{JuI$y"SV eeUN;քM7p\,*e~ТK%aRa2!qbJZsUfDWIxj7 BS՞#*=񲎮3b2ג4$MdKepڗë0`2CYji HtH”ixtxM~6tf7wwYZsGOKs=oWxL57K){sJ{؋)TRiQ]JZt?nʇ5w]|~Ym "iگ(drjy9E׻f  RibXZsia֚|Q9##n&iڧJbgݤB{o%MT]A^RS~*,3W52ICԚ=a:io7 lKpU*Pt`g ӻ~oTe林_I^zeS;$MRm6^LGZtf6% Lq,iڗ;4'co'*LqJZҴ/T .f6:*wJC6io 53^ze.ßc_>jB ɩ[ ~'1~hQi[Ƚ4GSs{SRe?MjMpYSU$M`6S-)/ >&pZٴW5EWkt1*Ml{KJN/3w\~4ͯl)fuM Kc!=mV:SkJ̦$9kQLk^U^3?_M/!/#78Mܪ_La  #1~"'$ 7[LHTΤJ.-)2w B-nᰩʃee>zɦ/"qKn%~{ Zb efrRk]ޗkТ`r[5w*?TxTm6S6 /}0D%9U85bN%6 ]6Ik4N:f*PiO6K5w -0VH撊;eTh=doP1rtZtiBi.ժLr};ޯT+=pe/JL p}:l`jyWDܞ@Qs6Ң3 )U͔ptn[J!SڅWO]B p*Rcgl`*f3%T(JΆpWx~yTiѩ6,ƖNW|U; wRm6SBk<*wؽʘ©£S'U {-^엤i\f?\7-^;/{e [TmW`^^Vƒxٟ`]V]Ri-leKE잤iL/+l%I 5Ix$& KL/UF ta#xpᢇ<{~'QiK'ݒ4e^K܁]4#-9@ %I8l¥ ]4Ck*lvI4Ƴݑ4l&qIH2스>wT+T&`W$MDu.+$MXLTf_:3ݐ4e6 iKۃQ8 삤.$ރe\^~l%TjReb4ELMTL&`jzfbT5S-zWYVƒX/r2)tp\-_,+ݘLKTG*Nie&.*vǖ2$k?-QiB2 ݢKEE""O^qXo[UiCiڅg˰yw.ߵX9o gSa6| jgsТKL鹾rapj@][ھEL2 /i4%*8jjP0=)+~[MK ZsKggehSОeIkn~iUxMIk?-CU;pؔ0 !Va9R*y"$oGB-vA2JNփeeӑ6Ioognr1QaoNU͸9>¹:lN-$H.!i o{yHT(sf\B.afeXa;r(c."_doU>痟mӹb_egU5PčI¤'z!&1>d[Gٗ:l?&Q!rerRݩye/[|xdڻT]'ƹ z\UapZti+qwGMϤ ILr]l{?Nʉ!q֪lWgMcF$t4];S=,S.ZwڛTɒɗYpIl1͍rpX@MI+3zܔMYM4Ih1|Jn' S284j%MQe6ӣZs[ic$I.JVm%7IR亷HNeQL1VtZsߴК_-koFcNkL-i:*w̪L*- m\N'ib44_*ST٫B}I*|^rEw#s+i:d65SUM1 s43U&jq[Vaf}MqSĈ鼪pTh̦HJΧl\*T gڛM7;Έ$MSǦpWWibz0"I)̠JmoӋw] 4G;$LgtTJTͤ5}U`dC݋Uك^tUf3è59|6X[&FQqM"i*2f@ksr!f-+T7M6ВsI]a֗M7Ϫ>4NntBx6pNIV>k[ǓX|BT [XB~T8Vhtl*TJ*kUo?χXmfI.h #Rr!:渔>s[GNINT)&2IkKII̦Z )I2vg%^ b%}bsuURXe GdTQd|uh]|WB7ENr;ɦ+l~\Z*Xa~Rl$RVmi'm~Nm 'i$K6_CeKJe#M}䉛37ܚ{gG8=w;xT95xYrwY]d 0*n wR*6 -ip|QW4JǪP\ NOZt9p\0*2l&zHs3t:y{oMmeM}KbISwZ%izxyY ғn +-uNű*Ma?lpwŗKISKIW 8>kٟv`ܻ-0ٟs5]Dxbj&Mٳ6ze%y5¬flE'`;iٽbMZ֙|BSvzf4e?,Ĕ3f4e J)[e2S)w ǰdf4e& i̔4 fjϥ5g7Ԓ^mJ I)[h7K$aY֡͒4utÓ4j9` _gI|0 LDI6kgNW]joIQ*Oh8M$G-oi4=/)8A1n^zVF IENDB`PK !:>// resources/rawfile/icon/todo1.pngPNG  IHDRMM,AXsRGBgAMA a pHYsod!tEXtCreation Time2023:02:02 12:23:31Gum/(IDATx^ϙ$I'WFf$h4 8Fn$hn $涷YTVeeF}{"zpg<{W= /} 9 x-K.uVm5\}TUBZCZ BO|V:BB?]_ M0.4k`e/+ &!4%w%L)[P*#G?^*a)y֑oJZGN MЗ'W/_-0P5$e(!Ҙ ǥLAQBԒ`$lJZ((Bhs%HkHT<8K82ƽjsN8{:?V'P3 a4P_,eؐy g[L&xD/2Ah%7IPWAhUST% JY꿕~T#MGgKYƌ4@$%$URw" &fgT Kn)?1%J?]JS7.Sw OT&fQ%F L2uRvP’nl[Q]&F쭔i8JpSw Ghb K\*rKx M.aKWˏ^ KЧ4'8;B` j;nM")=Ki` 3e O'4Qs(Oh5,Y sIxʴW"4QQ6R+<|)OPK L0s/r> 2G/hodәL KnaLN#4q}K[vz}}駡ק?r\M88ZRFJfҜBV0?`XW'ȨS M%+Sqg >hk P[֏ 8BRZ]*˻gҐ@+akװ =’ѥ\l8:BZ:rcѩԧ(n&.%0]::ZʴZSjUR?Yʈr'8cSB[˝vV`ǥ2Wߏcdu]“);(o鿖o[͎- >shT>|ZmWyJȝs:YJHG3Jc9pKTNy_m0܈ڧ8TNyT뤤nu4)!ɝ0-3 ]*G`wF5(r)I"wp`rG%@59 `S996r^+綴<$#"NķWz&%"@W&{%(QM}^āh~{ J,7AF^Y Qk~*+Oo+{:/2zYH>^v> `:]O`T?䬎{L1#Sw/WF2ärhf.Sppٶ ߅wdJt#I/+/; F?, @FOl'~We"K`ve[PKǙ{W9пt lGx`^̬} OsQlTj}gLG Kp,I8t%!aV%8Wg y;Pġ,.'@=3~ҹ I)'$+9O]4C!3n)`*fs'Kp-0N~(пW&0'-0K8riw~`3HIXJ8L純b*1ۖ)l0YZNlK7Zs io' 64C7,[dx,)g.-: NYNv 13,30e-f)7 FLG0& FLdiga lmO ^0rcF4{{3xb8 0Nj8ZFG]]%0xgd%LhLiԇRڜ `Q| jN%%ȹVpb&{U =sW  'MF88^Vhqbl~ɰF L* (sZeK3W @tu~2jF1:7to4|IOH;[#m-fC F9Ɉ(þY+0eKܬ Nt#c&`&,M;ta/]~ (p[P(+&`fliEe-07QNB L\0{y(#iF=3(cA e#d:8{q#p&cJZ^*, }8\ޟWdv7op1 L=8e0Y4}==.00-0n͈ -i^-4M$[׈eˁ@^rb==GZ`4 /MX\/lx9^64-KzROnzevhSVVxM/6P/NCbp]̦feޠX6z>F&m+WQ&P}%>J 0c շ٪6f)P@0٪6= .wV(UT_Ige'#97Jp)hS73\_{\%|~};T5JiAZ@EYߺvU) nx6xP> Y *ˣKZװ*eTܰ"%aUC7}ZopJsGЃS}Zon%*ֵJ{P婹Ye'1E4Y e TNէlf @oo?PvcT*}ǥ#t㻥X/ܨ򼫩9sd$uFS߮S6Lݡ\>P_N$f5}mvݥPlUpQF5۽#aAy p[ernP9{2۰F rC)T3 ܘ6wOe*ީ[j*p!0zyfM\uO8zOϬSj:ysFkR_\~.q:M;&pz0Ruv(Yb U90f$01sN9M&^D+@ o{}v /[_%f#0VyG>~ЪUZ3E{~v@pR9"@ pˇ9#4ZB`^\_+z3BSGOf 0@:t+lj .=LkXkg&grf6qtOS~&M0aCSM&Pqa2GCF`b/Vr؀ˆ]{5v Q$0ifOte!~ٳ+!r>3kȽ#Uv ߁dDYC$ LA`hk}ng!+l8cг&MBSš3+^ L C2ƑCfm^Mm!T Nʨ,-&4U|*r>pw`Z+~3*ݭs\Drm}g}*أ89aa'zva[1U|鹣BSyF8'z"0ѓhf%9(8T`xB~r'*SJ^p"^iд^_D`g߿FO{ϊ&'*]4H4b`Z NI`} *8;; NA`MtkeG`_x|s^'G0qqf3}R{U8k!e/xV [hJ NlM`bdj&i>>V&F'4ڨд{C N^KpM;xJp7K3˥P14<CBӎ~3Kh:DuU\3LhxjJ`M>k%9!r/?!+q󥾸x =k~}HSL) M &0#MV2eJ.NpL]k߮+NA` 388Tq.&yxԖz-m+*_KQ^&_4rrjg L\uYCIHigV9Y'"0Zᙕ7}x4XXx'8+3CIY6J`}UBh6dOu]e,\EpejYXLpL3kV[ ,!0qrl3Ge}>2&8/)H!>LTVqp*&T+fi\FxhXqKi|x&8GۣiU~ȥGpwu]^ëæT#8O`T|Gjh7<~ Lp\+[uʹT3"8G`U Y'U> 8C`*nP=Mc=+$8'0AkI{ 9 Nu LPG&a?易Tmg7DznnSS9M?rtNOIc*^4y& H=Ut)t< ʵu]|rlg&Vq&@T@8ԧ LP_SSUYT_ N32[o٥ L3CT#D Qu'𜓧g8r2qyo&UŇkc LПLN|2)? lt4Oyj3!-8$Bw+ޭ>R̠ji=\_k5V񚄦/?!͞Y!-x~ah[R5;.wyvMwm)iGo$?RFIŭRSlT/M5UxF N[BB3 KU{-T8{3zb>\OU N8?MEO<"Sr&S7R8Vʰ [j:5M/&>SsN<5g*O9ɲ5]U˿Tz{- ڪNeLG~wv#Nǔm X"'Wtًo˲BP^Q)`i㪮\75FUR6dOӶ%0T(SsoTyFMpڦ&xTJ`:52s9t_ L6?\P%>VkE?ž>|/.?<7E! N25Stv ӥ&oj}*UwMIĜa$0}2S)Ssk,' WCTyNC8g)8&02Qy4St1gآ*o=~pSXC8gKpjA<*[ 1(Sa_.Ъ8PէR&SX/M$Zזjerh]SN2ڔ2-Cw@Gzط"e ުoLep[E;eC6үkS6cKcֵbeX/2MВxJ:iɐ&)kF24=JF/nѦi:Vɔk܁EJZѦTVJ0rm5d^eq'^V˥'Vȥ,aJ'}N@5|9eZ'}NY27ʃӟ^3* W-}Z#\3tZ<3rpe' _֗fl-GNiyb-%0<Ԝr2NǍ/'F'[J+wqx yt)%0fNu%eѥ!8jѥT1&,ɨ~FRd2IxA/İW=-N0FRn #o*]qet)7.tNe7r2Rۭ!pقSJoѥNmZOٛit)%0A!k$7 [+*ZRYq59TZ9';7Aa3-}^VSZ_*'hSvp6lAgfy./Mqfl~^yrj֗z LOKXY q/V OV-`*+q7y?-+`@9͸GKnka]п3~%HZmnL),]*%>+C VQjL ?,%,;a=ѿ3].$,e<+/p:IP|N.Uڥ @%0ʊ;OJKQuP'z饌AzZwxUN>Qݺ .ǪQ%&z[}oW+7A]rE\F8KYg2l"'IF^?e~KP2t{=:ؔu(d2J6R)o(%(y.1m%@e /廖p NWNIŒIut.p\soc|6MѤ|&Syo݈euڿrA]{\e42fw}Ĕj:WK}ԟE-N&!E|,+kHZWI"&t^^mm04o MПBSF2?` Kxt)A|-J8Je)iz:$4,GL`&O2՗)>u($@03JC:2O:r?5 M-Pk/?TG[TBֿ[ ࣄ&(kP -O߭/IENDB`PK !:/,F resources/rawfile/rich_editor.js/* @file * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var RICH_EDITOR = {}; var callBackToApp; var h5Port; RICH_EDITOR.editor = document.getElementById('editorjs_box'); RICH_EDITOR.getHtml = function () { return document.getElementById('editorjs_box').innerHTML; }; RICH_EDITOR.setHtml = function (contents) { RICH_EDITOR.editor.innerHTML = contents; }; function scheduledSaveContent() { console.info('scheduledSaveContent'); var htmlString = RICH_EDITOR.getHtml(); var str = callBackToApp.callbackScheduledSave(htmlString); console.info('scheduledSaveContent end'); } function showButton() { document.getElementById('buttonBox').style.display = 'flex'; } function promptPopup() { callBackToApp.promptPopup(); } function setGray() { RICH_EDITOR.editor.style.backgroundColor = "red"; RICH_EDITOR.editor.style.color = "red" } document.getElementById('addToDo').onclick = promptPopup; document.getElementById('chooseStyle').onclick = promptPopup; document.getElementById('openAlbum').onclick = promptPopup; window.addEventListener('message', function (event) { if (event.data == '__init_port__') { if (event.ports[0] != null) { // 1. 保存从ets侧发送过来的端口 h5Port = event.ports[0]; h5Port.onmessage = function (event) { // 2. 接收ets侧发送过来的消息. var msg = ''; var result = event.data; if (typeof (result) === 'string') { msg = msg + result; } else if (typeof (result) === 'object') { if (result instanceof ArrayBuffer) { msg = `${msg} lenght is ${result.byteLength}`; } else { console.log('not support'); } } else { console.log('not support'); } RICH_EDITOR.editor.innerHTML = msg; } } } })  <0 *H 01 0  `He0 *H {"version-name":"2.0.0","version-code":2,"app-distribution-type":"os_integration","uuid":"5027b99e-5f9e-465d-9508-a9e0134ffe18","validity":{"not-before":1594865258,"not-after":1689473258},"type":"release","bundle-info":{"developer-id":"OpenHarmony","distribution-certificate":"-----BEGIN CERTIFICATE-----\nMIICFzCCAZygAwIBAgIJALlHlBD68Ud2MAoGCCqGSM49BAMDMGMxCzAJBgNVBAYT\nAkNOMRQwEgYDVQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkg\nVGVhbTEjMCEGA1UEAxMaT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gQ0EwHhcNMjQx\nMTA4MDYyNzUwWhcNMzQxMTA2MDYyNzUwWjBKMRUwEwYDVQQDDAxpZGVfZGVtb19h\ncHAxDTALBgNVBAsTBFVuaXQxFTATBgNVBAoTDE9yZ2FuaXphdGlvbjELMAkGA1UE\nBhMCQ04wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARXXHk7N7c4KwP6PmUOHeQR\n2QVRogXITfkUP9xc0hqcWjooZge2B7526bwwryuMp1wUfBanvCJDaE7QVJDg8HIO\no1IwUDAdBgNVHQ4EFgQU79W6WWb63gtbAjMANrBKQqqnSjgwDgYDVR0PAQH/BAQD\nAgeAMB8GA1UdIwQYMBaAFNuGtyIW1QuhS7fdJXu58QV9oi1HMAoGCCqGSM49BAMD\nA2kAMGYCMQCJN9WA2vNbxvkIhsbjwDTG2mvUmK+6yMXbM6Skxdc4j8nWvQ7YAE2S\nLrZupK4/1wwCMQDr2GKtDbX/wEhZr9FxWiCtX4RQ9iwZk+bIwevyRzJ8lFMpUGaG\nEaVlHnCVTojPKes=\n-----END CERTIFICATE-----\n","bundle-name":"com.example.fileEdit","apl":"normal","app-feature":"hos_system_app"},"acls":{"allowed-acls":["ohos.permission.READ_MEDIA","ohos.permission.WRITE_MEDIA","ohos.permission.FILE_ACCESS_MANAGER","ohos.permission.STORAGE_MANAGER","ohos.permission.GET_BUNDLE_INFO_PRIVILEGED","ohos.permission.ACCESS_DLP_FILE","ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS","ohos.permission.MANAGE_LOCAL_ACCOUNTS","ohos.permission.GET_LOCAL_ACCOUNTS","ohos.permission.PROXY_AUTHORIZATION_URI","ohos.permission.MEDIA_LOCATION"]},"permissions":{"restricted-permissions":[]},"issuer":"pki_internal"}0<07m0 *H=0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0 210202122105Z 491231122105Z0p1 0 UCN10U  OpenHarmony10U OpenHarmony Team100.U'OpenHarmony Application Profile Release0Y0*H=*H=BW빦Aqɒ(F7 *ČM7n+T?ȠQ Ó4nR0P0U#0ۆ" K%{}-G0U0Ua齧zNϕ_ R0 *H=i0f1 byH$BehwF>좘Bdf6`1jz :A$]L!O0D&RC$5xs~0D0ɠ80 *H=0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0 210202121418Z 491231121418Z0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0v0*H=+"bM6yk J(ocAmK{- vYY[@YGMGpB_T cG ޸_&r )QsYI~7GB0@0U00U0U:|Oј'Zw0 *H=g0d0wZw'1w>X' :*5z\-o#iY't0$$o]#R0J?yDuEpv0qOy֧+G0a0e=0 *H=0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0 210202121532Z 491231121532Z0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0v0*H=+"b!ǝ5ʤ_A%'tC'֓ 7~pX~pvR0Wڗ(6P›ј!`+-Uc0a0U#0:|Oј'Zw0U00U0Uۆ" K%{}-G0 *H=h0e0m^8t:h_6}fOHU߉hI1ow:rR&-XŖl;NrapYtg4;.1A0=0k0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA7m0  `Hei0 *H  1  *H 0 *H  1 241108062751Z0/ *H  1" \*x6N8v= {aɣ^0 *H=G0E!=192DFX%Kn.dnP z#!XlN̚rKA.) *C%=08 *H )0%1 0  `He0C *H 64( 7B".u c Y |*00 GGv0 *H=0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0 241108062750Z 341106062750Z0J10U ide_demo_app1 0 U Unit10U  Organization1 0 UCN0Y0*H=*H=BW\y;78+>eQM?\Z:(fv0+\|"ChNTrR0P0UպYf [36JBJ80U0U#0ۆ" K%{}-G0 *H=i0f17Հ[4kԘ38ֽM.n? 1b HYqZ _P,G2|S)PfepN)0a0e=0 *H=0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0 210202121532Z 491231121532Z0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0v0*H=+"b!ǝ5ʤ_A%'tC'֓ 7~pX~pvR0Wڗ(6P›ј!`+-Uc0a0U#0:|Oј'Zw0U00U0Uۆ" K%{}-G0 *H=h0e0m^8t:h_6}fOHU߉hI1ow:rR&-XŖl;NrapYtg4;.1F0B0p0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA GGv0  `Hei0 *H  1  *H 0 *H  1 241108062759Z0/ *H  1" ]?/)]\U; 40 *H=G0E!!*W5E"\Ui?WËd6|, (? 9c;ݸcqi9!kPK !:,P,Pets/modules.abcPK !:}SН Dresources/base/media/ic_docs.svgPK !:=n"fresources/base/media/ic_folder.svgPK !:. 'resources/base/media/ic_public_edit.svgPK !: /vresources/base/media/ic_public_edit_disable.svgPK !:2G! .Uresources/base/media/ic_public_edit_enable.svgPK !:"Aresources/base/media/ic_saveas.svgPK !:.Іresources/base/media/icon.pngPK !:q?EE"V#resources/base/media/more_list.svgPK !:O]$resources/base/media/save.svgPK !:ـ֣!*resources/base/media/triangle.svgPK !:eD&-resources/base/profile/main_pages.jsonPK !:).resources/rawfile/editor.htmlPK !: "Z2resources/rawfile/editor_style.cssPK !:-/'/'(a<resources/rawfile/icon/picture_white.pngPK !:0$$!cresources/rawfile/icon/styles.pngPK !:>// <resources/rawfile/icon/todo1.pngPK !:/,F <resources/rawfile/rich_editor.jsPK~