Commit Graph

2748 Commits

Author SHA1 Message Date
chenos
f33c63ac01 fix: filter error 2023-01-14 10:31:22 +08:00
chenos
a4116a251b fix: locale cache 2023-01-13 11:47:56 +08:00
chenos
86554c0205 feat: add en-US.example.json 2023-01-13 11:26:52 +08:00
chenos
cc47041519
feat: load multiple languages dynamically (#1355)
* feat: load multiple languages dynamically

* fix: map locale

* fix: antd

* fix: locale

* fix: th

* fix: cronstrue locales

* fix: improve code

* fix: defaults
2023-01-13 10:55:04 +08:00
Junyi
a1127300ae
refactor(plugin-workflow): refactor request instruction (#1356) 2023-01-12 02:22:06 -08:00
chenos
3e90bc9d7e fix: improve filter strategy 2023-01-12 14:28:47 +08:00
chenos
c5238f5643
feat: update dependencies (#1353)
* feat: update dependencies

* fix: import error
2023-01-12 10:12:37 +08:00
Zhou
5d34d76784
Update index.md 2023-01-12 09:58:00 +08:00
Zhou
240c27b38a
Update index.md 2023-01-12 09:56:39 +08:00
chenos
6ca67c87fa fix(plugin-snapshot): improve translation 2023-01-11 18:17:11 +08:00
chenos
0e5c9779be feat: update docs 2023-01-11 17:36:41 +08:00
Zhou
74f46a23eb
Update README.md 2023-01-11 14:53:25 +08:00
Zhou
d5da0d31c4
Update README.zh-CN.md 2023-01-11 14:49:15 +08:00
Zhou
8983f3fa7b
Update index.md 2023-01-11 12:58:44 +08:00
chenos
a3403a2aa6 feat: update release note 2023-01-11 12:30:13 +08:00
chenos
013f0916a5 chore(versions): 😊 publish v0.9.0-alpha.1 2023-01-11 12:08:24 +08:00
chenos
8d30bee757
feat: change license (#1350) 2023-01-11 11:58:47 +08:00
chenos
618a65deec fix: skip field validation when fields are hidden 2023-01-10 14:54:04 +08:00
chenos
61621a9759 fix: click the edit button to report an error 2023-01-10 12:16:29 +08:00
chenos
1dc4142da2 fix: typeError: Cannot read properties of undefined (reading 'find') 2023-01-10 10:48:50 +08:00
chenos
452ecb5fc7
feat: formula plugin (#1344)
* fix: transaction cannot be rolled back because it has been finished with state: rollback

* fix(plugin-system-settings): convert array to json

* fix(collection-manager): o2m is array type

* fix: missing RefreshActionInitializer

* fix(collection-manger): incorrect scope key parameter

* fix: can't access pages without permission via url (#826)

* feat(database): add sequence field type (#779)

* feat(database): add serialString field type

* feat(database): add serial string type field ui (skip ci)

* test(feat/database): test field options

* docs: demo

* fix(database): fix array table field behavior

* fix(database): fix serial type interface ui

* fix(database): add match logic for patterns changes

* fix(database): fix serial type query last bug in mysql

* refactor(database): refactor last record logic

* chore: revert modification on unnecessary file

* refactor(database): rename serialString type to sequence

Co-authored-by: chenos <chenlinxh@gmail.com>

* added Russian translation (#840)

* Russian translation

* Add files via upload

Add RU locale into index.ts
Bugs fixed in the ru_RU.ts

* Update index.ts

Correct lines 4 and 8

* feat: update option must have filter or filterByTk (#847)

* feat: update option must have filter or filterByTk

* fix: typo

* fix: typo

* feat(core/cache): support cache (#876)

* feat(core/cache): support cache

* build(create-nocobase-app): remove --cache-store-package cli option

* perf(core/cache): modify default cache config and remove unnecessary logic code

* fix: slow join query issued by appends field in find method of repository  (#845)

* fix: slow join query issue by appends field in repository.find

* feat: handle appending query in multiple relation repository

* feat: handle appending query in single relation repository

Co-authored-by: chenos <chenlinxh@gmail.com>

* fix: sort parameter is missing (#849)

* fix: 审计日志翻页sort丢失

* fix: 审计日志翻页sort丢失

* fix: 审计日志翻页sort丢失

Co-authored-by: 唐小爱 <tangxiaoai@192.168.0.103>

* fix(formula): support integer and fix NaN error (#879)

* fix(formula): support integer and fix NaN error

* style(formula-input): remove debugger

* fix(database): fix the index name too long error

* feat(collection-manager): inverse fields can be configured (#883)

* feat: inverse field

* feat: improve code

* feat: translations

* fix: required

* fix: run test by jest (#891)

* fix: unable to submit form during file upload (#892)

* fix(client/block-select-collection): fix select collection menu view error (#889)

* fix(client/block-select-collection): fix too many collection menu view error

* fix(client/relate-collection-field-menu): fix relate collection field menu view too long error

* fix(client/record-picker): support record-picker show format DataPicker (#888)

* fix(client/record-picker): support record-picker show format DataPicker

* fix(client/record-picker): undefined judgment and when change field's label refresh format in time

* feat: improve signin and signup page components

* feat(plugin-workflow): add concat calculator (#894)

* fix: single relation repository appends query issue (#901)

* fix: appends merge includes (#905)

* fix: build error

* fix(client): tab pane initializers for create form block

* fix: version judgment is not accurate

* fix: sync collection field default value (#907)

* feat: limit database identifier (#908)

* fix: cannot read properties of undefined (reading 'target')

* fix: appends merge now using primary key (#911)

* fix: appends merge now using primary key

* chore: console.log

* fix: unbind on error throwing (#914)

* feat: create with array of values (#912)

* feat: create with array of values

* chore: console.log

* chore: debug

* fix(client/route-switch): skip sub routes

* Feat: plugin workflow collection field (#919)

* feat(plugin-workflow): use Collectionfield component to render form

* fix(plugin-workflow): fix association types value assigning in nodes

* fix: missing menuItemGroupCss

* fix: multiple = false

* chore(versions): 😊 publish v0.7.5-alpha.1 (#920)

* fix(plugin-workflow): temp disable validation of collection field in node (#928)

* fix(plugin-workflow): fix schedule infinitely trigger when repeat not set (#926)

* Feat/plugin workflow collection field (#934)

* feat(plugin-workflow): support association constant simple input

* fix(plugin-workflow): remove useless code

* fix(plugin-workflow): add req context to processor (#936)

* fix(plugin-workflow): avoid revision with ghost nodes (#941)

* fix(plugin-workflow): fix collection fieldset component (#942)

* feat(useSignup): customize success message

* feat: changed with associations (#943)

* feat: changed with associations

* fix: test error

* fix: test error

* fix: test

* fix(plugin-workflow): fix schedule trigger bug (#949)

* fix(plugin-workflow): skip time based test (#951)

* fix(plugin-workflow): test changedWithAssociations() (#950)

* fix(plugin-workflow): test changedWithAssociations()

* fix: toChangedWithAssociations

* fix(plugin-workflow): add test cases

Co-authored-by: chenos <chenlinxh@gmail.com>

* feat: docker optimizing (#948)

* chore: feat/docker-optimizing
* feat: docker nginx gzip config

* feat: ui schema cache (#877)

* feat(core/cache): support cache

* perf(plugins/ui-schema-storage): cache schema

* refactor(plugins/ui-schema-storage): handle schema cache in repository level, not in action

* fix(plugins/ui-schema-storage): jsonSchema use s_ + x-uid and properties use p_ + x-uid cache

prevent jsonSchema and properties cache override each other

* test(plugins/ui-schema-storage): add ui_schema repository with cache test

* build(create-nocobase-app): remove create-nocobase cli's cache-store-package option

* test(plugins/ui-schema-storage): add ui_schema repository with cache test with readFromCache false

* fix(plugins/ui-schema-storage): repository insertAdjacent and patch method clear cache fix

Co-authored-by: chenos <chenlinxh@gmail.com>

* feat: add filter action to collection table (#953)

* feat: 数据表支持筛选

* feat: 数据表支持筛选

* feat: 数据表支持筛选

* feat: 数据表支持筛选

* fix: format code

Co-authored-by: chenos <chenlinxh@gmail.com>

* fix: default value of VERDACCIO_URL

* feat: add Dockerfile.official

* refactor(plugin-file-manager): move client code into plugin folder and enable path config (#913)

* Turkish language (#939)

* Türkçe dil dosyası eklendi. Turkish language added

* Türkçe dil düzenlemesi. Turkish language edit.

* fix: cannot find name 'antdTrTR'

* chore(versions): 😊 publish v0.7.6-alpha.2 (#954)

* Turkish readme (#955)

* Türkçe dil dosyası eklendi. Turkish language added

* Türkçe Açıklama sayfası. Turkish readme file added

* Turkish language link added

* turkish language link added

* fix: update readme

* fix(plugin-workflow): fix constant schedule trigger time (#956)

* feat: push ali docker registry (#957)

* feat: push ali docker registry

* fix: add VERDACCIO_URL

* fix: env

* fix: add VERDACCIO_URL to env

* fix: update VERDACCIO_URL

* fix: arg VERDACCIO_URL

* fix: update Dockerfile.official

* fix: build-args

* fix: network: host

* fix: ci

* fix: verdaccio:10104

* Update branch-docker-ci.yml

* Update branch-docker-ci.yml

* Update branch-docker-ci.yml

* Update branch-docker-ci.yml

* Update branch-docker-ci.yml

* Update branch-docker-ci.yml

* Update branch-docker-ci.yml

* feat: push acr

Co-authored-by: ChengLei Shao <chareice@live.com>

* feat: api service

* fix: api services

* feat(file-manager): support tencent cos (#958)

* feat: support tencent cos

* feat: normalize

* chore: update env example

* test: add cos

* Revert "feat: normalize"

This reverts commit 371880013c20b4cb4174ffaa15e0157acc5306c3.

* feat: normalize

* feat: tengxun to tencent

* chore: fix missing deps

* fix: locale

* fix: locale cos

* fix(database/formula-field): when formula's field caculate result is 0 it alse will be save (#962)

* fix: lerna ERR! EUNCOMMIT  M yarn.lock

* fix: driver-opts: network=host

* fix(ci): add verdaccio service

* chore(versions): 😊 publish v0.7.7-alpha.1 (#963)

* fix(plugin-workflow): fix workflow update action (#964)

* fix(ci): yarn config set network-timeout 600000

* fix: empty logic operator filter (#961)

* chore: fix incorrect deps (#970)

* feat: support show lunar day (#972)

* feat: support show lunar day

* fix: update yarn.lock

* fix: types error

Co-authored-by: Dunqing <dengqing0821@gmail.com>

* fix(ci): remove platforms

* chore: improve ci (#976)

* test: ci

* fix: ci error

* fix: on pull_request

* fix: paths

* fix: paths 'packages/**'

* feat: support show lunar day in week and day (#977)

Co-authored-by: qing <qing@imideMacBook-Air.local>

* fix(client/formula): set cursor focus on input (#959)

* fix(client/formula): set cursor focus on input

* fix(client/formula): when formula field name has contains the other one will case FormulaError

refactor partial implementation

* fix(client/table-selector-provider): make data range config effective (#960)

* fix(client/table-selector-provider): make data range config effective

* fix(client/table-selector): fix when save data range config filter lose

* fix(client/upload): fix upload mutiple files always uploading status (#974)

* Update README.md

* Update README.zh-CN.md

* Update README.tr-TR.md

* feat(calendar): support for add/remove repeats events (#988)

* feat(calendar): support for adding repeats

* feat: support delete events

* fix: has many same x-action

* feat: update better logic

* fix: exclude is not an array

* fix: handle parse cron error

* feat: support every_week, every_month, every_year

* fix(calendar): events cannot support moment (#1017)

* fix(calendar): events cannot support moment

* fix: avoid manipulating raw values

* feat: add excel function field (#906)

* feat: add excel function field

* fix: translations

* fix: documentation

* chore: remove console log

* chore: moved generation of parser to helper function; feat: added GET_DEEP function

* chore: improve tokenisation for when there are similar names;

* chore: move helper to utils

* fix: import from @nocobase/utils/client

* feat: integration as a plugin

* fix: remove excel function interface

* fix: locale

* fix: error

* refactor: formula plugin

* fix: improve code

* feat: update docs

* fix: error

* fix: update deps

* fix: remove formula

* fix:  bigint & test

* fix: result

* fix: double data type

* fix: maximum call stack size exceeded

* fix: improve code

* fix: improve code

* feat(cli): quickstart

* Revert "feat(cli): quickstart"

This reverts commit 99ad54afb6785c9180c46dd3e9e01e25da368218.

* fix: precision

* fix: migration

Co-authored-by: Michael DeGiovanni <m.degiovanni@gmail.com>
2023-01-10 09:48:46 +08:00
chenos
3091d25b5e fix(acl): map snippet & translation 2023-01-09 22:03:57 +08:00
chenos
31794d3c1b feat: improve translation 2023-01-09 18:33:02 +08:00
chenos
ab85deae64 fix(acl): logged in users are allowed to view map configuration 2023-01-09 18:11:12 +08:00
chenos
dd157e2fd0 fix: shallow merge 2023-01-09 15:41:08 +08:00
chenos
fd71d57bdf fix: add filter operator "is not current logged-in user" 2023-01-09 10:59:26 +08:00
ChengLei Shao
a614bc7de8
feat: acl optimization (#1136)
* fix: sort field with table dose not have primary key

* feat: fixed params merger

* chore(plugins/acl): fixed params

* chore(plugins/acl): allowConfigure of collections

* chore(plugins/china-region): disable actions other than list

* chore(plugins/collection-manager): allowConfigure permission

* chore(plugins/file-manager): acl fixed params

* chore: acl fixed params

* chore: rolesResourcesScopes onDelete cascade

* fix: install error

* chore: test

* fix: root user fixed params

* fix: role resource scope onDelete

* chore: test

* chore: test

* fix: acl

* chore: disable index.html cache

* chore: disable index.html cache

* test: destory user role

* test: destory throught table

* fix: test

* fix: test

* chore: add rolesUsers to fixed params

* feat: permission logging

* feat: permission logging

* fix: test

* fix: test

* chore: disable grant target action

* fix: appends with fields

* fix: get action params

* fix: associationActions

* chore: change AssociationField using relation type

* chore: typo

* refactor: allow to skip

* fix: prettier

* chore: attachments association action

* fix: allowConfigure condition

* fix: deprecated allow

* fix: please use skip instead

* feat: table column aclcheck

* chore: test

* feat: throw error when detory no permission record

* chore: test

* chore: acl test

* feat: field acl

* chore: after action middleware

* fix: destory permission check

* chore: middleware use

* fix: test

* feat: filter match

* feat: subform/subtable field acl check

* feat: action permision by scope

* feat: action permision by scope

* feat: list action with allowedActions

* chore: all allowed action

* fix: pk error

* fix: merge error

* fix: create query sql

* fix: skip permission

* fix: scope with association field

* feat: action acl fix

* feat: action acl fix

* fix: update submodule

* Feat: setting center permission (#1214)

* feat: add setting center permissions

* feat: setting center permissions backlist

* feat: setting center permissions BLACKLIST

* feat: setting center permissions blacklist

* feat: setting center permissions blacklist

* feat: setting center permission

* feat: configure plugin tab expand

Co-authored-by: chenos <chenlinxh@gmail.com>

* Feat :field acl (#1211)

Co-authored-by: chenos <chenlinxh@gmail.com>

* fix: build error

* test: acl snippet

* feat: set field

* fix: test

* fix: build error

* fix: utils Dependency cycles

* feat: general permissions

* feat: delete pluginTabBlacklist

* fix: test

* feat: snippetManager allow method

* feat: acl role snippetAllowed method

* feat: array field repository

* feat:  ArrayFieldRepository

* fix: test

* fix: ci

* fix: ci error

* fix: add set parse

* test: array field repository

* chore: addSnippetPatten

* fix: start

* feat: sync role snippets

* feat: snippets check

* feat: snippets check

* chore: acl role snippet api

* fix: test

* fix: test

* refactor: acl role snippets

* chore: registerACLSettingSnippet

* chore: default snippets

* feat: snippets match

* feat: snippets check

* feat: snippets check

* feat: pm permision check

* feat: pm permision check

* feat: snippet pattern match

* feat: pluginManagerToolbar check

* feat: pluginManagerToolbar check

* chore: snippets default value

* feat: set role snippets migration

* chore: snippets

* feat: acl local

* feat: acl local

* feat: bookmask fix

* feat: plugin-manger & ui-editor snippet

* feat: set allowConfigure to false when upgrade to snippets

* feat: destory action acl fix

* feat: destory action acl fix

* fix: association resource params merge

* fix: ui editor snippet

* feat:  action acl fix

* chore: move list meta middleware into plugins/acl

* fix: test

* feat:  action acl fix

* feat: action acl check fix

* feat: plugins toolbar fix

* feat: gitmodules

* fix: subproject

* chore: add avaiableActions to snippet

* chore: change plugin-manager snippet

* feat: configure action acl fix

* feat: plugin tab acl check fix

* chore: roles snippets

* fix: add actions to snippet

* feat: allowconfigure fix

* fix: count with filterBy

* fix: build error

* feat: get action with allowedActions

* feat: acl route check fix

* feat:  aclActionProvider fix

* feat: actionscpe fix

* feat: actionname alias

* feat: setting center fix

* feat: acl provider fix

* fix: role collection

* feat: associate resource  acl

* feat: associate resource  acl

* feat: redirect to 403

* feat: route redirct

* feat:  acl scope check by record

* fix: fields  appends fix

* fix: fields  appends fix

* fix: fields  appends fix

* fix: allowedActions  fix

* fix:  menu items

* fix: rename

* fix: improve code

* fix: improve code

* fix: improve code

* fix: ctx?.data?.data

* fix: styling

* fix: allowAll after ignore scope

* chore: allowConfigure condition

* fix: collections.fields:*

* fix: acl test

* fix: update submodule

* fix: acl test

* fix: acl snippet

* fix: updates

* fix: only load history for logged-in users

* fix: this.app.acl.registerSnippet

* fix: downloadXlsxTemplate

* fix: 404

* feat: allowedAction in association list response

* fix: listData get

* fix: test

* fix: x-collection-field

* fix: update record error

* fix: calendar template

* test: allow manager

* fix: fetch action step

* fix: update submodule

* fix: refresh

* fix: refresh

* fix: rolesResourcesScopes

* test: snippets

* fix: snippets

* fix: test

* fix: omit filter.createdById

* fix: improve code

* fix: collections path

* fix: test error

* fix: upgrade error

* fix: errors

* fix: read allowed actions error

* fix: kanban error

* fix: error

Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: katherinehhh <katherine_15995@163.com>
2023-01-09 07:35:48 +08:00
chenos
668f96fb25 fix: collections path 2023-01-08 20:47:32 +08:00
ChengLei Shao
6b0ed79f51
feat: duplicator plugin (#1265)
* chore: dump plugin

* chore: rename plugin

* chore: add duplicator into preset

* chore: tmp commit

* feat: restore & dump action

* feat: collection dump & restore

* feat: collection dump & restore

* fix: dump with json type

* fix: dump uischema

* chore: tmp commit

* chore: tmp commit

* feat: restore custom collections

* chore: code

* fix: build

* chore: tmp commit

* fix: pm.generateClientFile

* feat: dump with user plugins

* feat: restore ignore collection

* feat: ignore user with rolesUsers

* chore: client plugins

* refactor: restore insert sql

* chore: code format

* feat: restore with sequelize insert query

* fix: restore json field

* fix: json restore

* refactor: dumper

* refactor: restorer

* chore: dump file name

* chore: dump file name

* chore: dump message

* fix: restore with jsonb fields

* feat: field data writer

* chore: code

* feat: collection group manager

* feat: duplicator client

* feat: duplicator panel

* chore: disable duplicator ui

* feat: dump with inquirer

* chore: dumper

* chore: collection group manager

* feat: restore with inquirer

* chore: comment

* chore: inquirer page size

* feat: warning before restore

* feat: sync postgres sequence id after import collection

* chore: restore checked

* feat: dump with through table

* feat: restore with through table

* feat: restore with sequence field

* chore: graph collection manager collection group

* fix: dump with no column tables

* fix: dump empty table

* fix: force remove workdir

* chore: disable throw error when sync empty table

* feat: support map field restore

* fix: restore from pg dumped file

* fix: dump with logic field

* chore: console.log

* chore: collection group

* chore: handle import collection error

* fix: dump migrations table

* feat: display custom collection title

* fix: restore collection title display

* fix: dump iframe html

* fix: dump with postgres inhertitance

* fix: dump sql

* chore: export snapshot field

* fix: import with sequences

* fix: import sequences

* fix: storage

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-01-08 12:45:02 +08:00
Junyi
322194f24a
fix(plugin-workflow): fix missed preparing (#1337) 2023-01-08 00:56:43 +08:00
Dunqing
f6769341bd
fix: FixedBlock does not disappear when the current tab is deleted (#1324)
* fix: fixed block does not disappear when the current tab is deleted

* fix: using template and fixedBlock together causes props to conflict

* fix: reference templates do not work properly
2023-01-07 23:31:09 +08:00
Dunqing
6246d152b0
feat(Select): should compile title and label (#1332) 2023-01-07 09:30:19 +08:00
anuoua
550db03615
fix: improve filter (#1333)
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-01-06 15:53:24 +08:00
chenos
85a032f87c fix: only load history for logged-in users 2023-01-06 11:54:54 +08:00
chenos
2cba502f60 fix: load collections history only admin pages 2023-01-06 08:47:43 +08:00
chenos
d062c8fd99
chore(versions): 😊 publish v0.8.1-alpha.4 (#1331) 2023-01-05 23:22:18 +08:00
chenos
4ecd2ee40d chore(versions): 😊 publish v0.8.1-alpha.2 2023-01-05 18:29:47 +08:00
chenos
4d2817268a fix: collections history allows logged-in user access 2023-01-05 17:34:58 +08:00
Junyi
58b7c5dd30
fix(plugin-sequence-field): integer generated should not less then start (#1330) 2023-01-05 00:12:11 -08:00
anuoua
346af57b55
fix: filter removeNullConditions (#1329) 2023-01-05 12:46:18 +08:00
anuoua
72e9533b7d
fix: snapshot display fix (#1328) 2023-01-05 12:45:06 +08:00
Junyi
c851e65459
fix(plugin-workflow): fix history drawer in workflow canvas (#1326) 2023-01-04 06:24:41 -08:00
anuoua
6febdb041a
feat: snapshot field plugin (#1253)
* feat: snapshort init

* feat: snapshot update yarn.lock

* feat: snapshot add to preset

* feat: snapshot add field fix

* feat: snapshot remove Table Column SnapshotField

* feat: snapshot field label fix

* feat: snapshot request error fix

* feat: snapshot 二级关联数据打开

* feat: snapshot batch edit fix

* feat: snapshot 2 level draw fix

* feat: snapshot translate

* feat: snapshot global historyCollection provider

* feat: snapshot install initial

* feat: snapshot refreshCH

* feat: snapshot add transaction

* feat: snapshot default collecitonField

* feat: snapshot build fix

* feat: snapshot useSnapshotFieldTargetCollectionKey

* feat: snapshot batch update

* feat: snapshot linkto support

* feat: snapshot use getRepository

* feat: snapshot recreate fix

* feat: snapshot collectionKey to collectionName & rebuild collection

* feat: snapshot remove SnapshotHistoryCollectionProvider & collectionName

* feat: snapshot use historyCollections in inherit table

* feat: snapshot fix TableSelectorBlock appends

* feat: snapshot kanban fix

* feat: snapshot snapshot association field fix

* feat: snapshot add CollectionFieldProvider fallback

* feat: snapshot AssociationSelect fix

* feat: snapshot TableField fix
2023-01-04 19:27:37 +08:00
chenos
a44b778098 fix: form.values 2023-01-04 18:38:58 +08:00
katherinehhh
ebc103c8ff
feat: configure fields style fix (#1322) 2023-01-04 18:35:35 +08:00
Junyi
8943dabc4d
fix(plugin-workflow): fix events in prepare (#1325) 2023-01-04 02:26:44 -08:00
chenos
fb8a4de8cc fix: move assign to utils package 2023-01-03 15:27:22 +08:00
chenos
0177f775fc fix: code format 2023-01-03 15:17:20 +08:00
chenos
9d618315ae
fix(database): filter match (#1319)
Co-authored-by: Chareice <chareice@live.com>
2023-01-03 13:38:20 +08:00
chenos
43db2b641b
fix: action merge params (#1321)
Co-authored-by: Chareice <chareice@live.com>
2023-01-03 13:26:50 +08:00