| @@ -516,8 +516,58 @@ | ||
| 516 | 516 | return null; |
| 517 | 517 | } |
| 518 | 518 | var get_normalized_comma_separable_default = getNormalizedCommaSeparable; |
| 519 | 519 | |
| 520 | + // packages/core-data/build-module/utils/set-nested-value.mjs | |
| 521 | + function setNestedValue(object, path, value) { | |
| 522 | + if (!object || typeof object !== "object") { | |
| 523 | + return object; | |
| 524 | + } | |
| 525 | + const normalizedPath = Array.isArray(path) ? path : path.split("."); | |
| 526 | + normalizedPath.reduce((acc, key, idx) => { | |
| 527 | + if (acc[key] === void 0) { | |
| 528 | + if (Number.isInteger(normalizedPath[idx + 1])) { | |
| 529 | + acc[key] = []; | |
| 530 | + } else { | |
| 531 | + acc[key] = {}; | |
| 532 | + } | |
| 533 | + } | |
| 534 | + if (idx === normalizedPath.length - 1) { | |
| 535 | + acc[key] = value; | |
| 536 | + } | |
| 537 | + return acc[key]; | |
| 538 | + }, object); | |
| 539 | + return object; | |
| 540 | + } | |
| 541 | + | |
| 542 | + // packages/core-data/build-module/utils/get-filtered-item.mjs | |
| 543 | + var filteredItemCache = /* @__PURE__ */ new WeakMap(); | |
| 544 | + function getFilteredItem(item, _fields) { | |
| 545 | + const fields = get_normalized_comma_separable_default(_fields) ?? []; | |
| 546 | + const fieldsKey = fields.join(","); | |
| 547 | + let itemCache = filteredItemCache.get(item); | |
| 548 | + if (itemCache) { | |
| 549 | + const filtered = itemCache.get(fieldsKey); | |
| 550 | + if (filtered !== void 0) { | |
| 551 | + return filtered; | |
| 552 | + } | |
| 553 | + } else if (item !== null && typeof item === "object") { | |
| 554 | + itemCache = /* @__PURE__ */ new Map(); | |
| 555 | + filteredItemCache.set(item, itemCache); | |
| 556 | + } | |
| 557 | + const filteredItem = {}; | |
| 558 | + for (let f = 0; f < fields.length; f++) { | |
| 559 | + const field = fields[f].split("."); | |
| 560 | + let value = item; | |
| 561 | + field.forEach((fieldName) => { | |
| 562 | + value = value?.[fieldName]; | |
| 563 | + }); | |
| 564 | + setNestedValue(filteredItem, field, value); | |
| 565 | + } | |
| 566 | + itemCache?.set(fieldsKey, filteredItem); | |
| 567 | + return filteredItem; | |
| 568 | + } | |
| 569 | + | |
| 520 | 570 | // packages/core-data/build-module/utils/if-matching-action.mjs |
| 521 | 571 | var ifMatchingAction = (isMatch) => (reducer) => (state, action) => { |
| 522 | 572 | if (state === void 0 || isMatch(action)) { |
| 523 | 573 | return reducer(state, action); |
| @@ -555,30 +605,8 @@ | ||
| 555 | 605 | }; |
| 556 | 606 | } |
| 557 | 607 | var with_weak_map_cache_default = withWeakMapCache; |
| 558 | 608 | |
| 559 | - // packages/core-data/build-module/utils/set-nested-value.mjs | |
| 560 | - function setNestedValue(object, path, value) { | |
| 561 | - if (!object || typeof object !== "object") { | |
| 562 | - return object; | |
| 563 | - } | |
| 564 | - const normalizedPath = Array.isArray(path) ? path : path.split("."); | |
| 565 | - normalizedPath.reduce((acc, key, idx) => { | |
| 566 | - if (acc[key] === void 0) { | |
| 567 | - if (Number.isInteger(normalizedPath[idx + 1])) { | |
| 568 | - acc[key] = []; | |
| 569 | - } else { | |
| 570 | - acc[key] = {}; | |
| 571 | - } | |
| 572 | - } | |
| 573 | - if (idx === normalizedPath.length - 1) { | |
| 574 | - acc[key] = value; | |
| 575 | - } | |
| 576 | - return acc[key]; | |
| 577 | - }, object); | |
| 578 | - return object; | |
| 579 | - } | |
| 580 | - | |
| 581 | 609 | // packages/core-data/build-module/utils/get-nested-value.mjs |
| 582 | 610 | function getNestedValue(object, path, defaultValue) { |
| 583 | 611 | if (!object || typeof object !== "object" || typeof path !== "string" && !Array.isArray(path)) { |
| 584 | 612 | return object; |
| @@ -3379,16 +3407,8 @@ | ||
| 3379 | 3407 | key: "slug", |
| 3380 | 3408 | supportsPagination: false |
| 3381 | 3409 | }, |
| 3382 | 3410 | { |
| 3383 | - label: (0, import_i18n.__)("Registered Templates"), | |
| 3384 | - name: "registeredTemplate", | |
| 3385 | - kind: "root", | |
| 3386 | - baseURL: "/wp/v2/registered-templates", | |
| 3387 | - key: "id", | |
| 3388 | - supportsPagination: false | |
| 3389 | - }, | |
| 3390 | - { | |
| 3391 | 3411 | label: (0, import_i18n.__)("Font Collections"), |
| 3392 | 3412 | name: "fontCollection", |
| 3393 | 3413 | kind: "root", |
| 3394 | 3414 | baseURL: "/wp/v2/font-collections", |
| @@ -3510,14 +3530,12 @@ | ||
| 3510 | 3530 | getTitle: (record) => record?.title?.rendered || record?.title || (isTemplate ? capitalCase(record.slug ?? "") : String(record.id)), |
| 3511 | 3531 | __unstablePrePersist: (persistedRecord, edits) => prePersistPostType(persistedRecord, edits, name, isTemplate), |
| 3512 | 3532 | __unstable_rest_base: postType.rest_base, |
| 3513 | 3533 | // The templates controller returns the whole collection and never |
| 3514 | - // paginates. It serves `wp_template_part` always, and `wp_template` | |
| 3515 | - // until the template activate experiment moves it to a posts | |
| 3516 | - // controller. | |
| 3517 | - supportsPagination: window?.__experimentalTemplateActivate ? name !== "wp_template_part" : !isTemplate, | |
| 3534 | + // paginates. | |
| 3535 | + supportsPagination: !isTemplate, | |
| 3518 | 3536 | getRevisionsUrl: (parentId, revisionId) => `/${namespace}/${postType.rest_base}/${parentId}/revisions${revisionId ? "/" + revisionId : ""}`, |
| 3519 | - revisionKey: isTemplate && !window?.__experimentalTemplateActivate ? "wp_id" : DEFAULT_ENTITY_KEY | |
| 3537 | + revisionKey: isTemplate ? "wp_id" : DEFAULT_ENTITY_KEY | |
| 3520 | 3538 | }; |
| 3521 | 3539 | if (!window.__experimentalEnableRealTimeCollaboration) { |
| 3522 | 3540 | return entity2; |
| 3523 | 3541 | } |
| @@ -3766,8 +3784,29 @@ | ||
| 3766 | 3784 | ), |
| 3767 | 3785 | meta: action.meta |
| 3768 | 3786 | }; |
| 3769 | 3787 | }); |
| 3788 | + function removeQueryItems(queryItems, removedItems) { | |
| 3789 | + const itemIds = queryItems.itemIds.filter( | |
| 3790 | + (itemId) => !removedItems[itemId] | |
| 3791 | + ); | |
| 3792 | + const removedCount = queryItems.itemIds.length - itemIds.length; | |
| 3793 | + if (removedCount === 0) { | |
| 3794 | + return queryItems; | |
| 3795 | + } | |
| 3796 | + const nextQueryItems = { ...queryItems, itemIds }; | |
| 3797 | + if (Number.isFinite(queryItems.meta?.totalItems)) { | |
| 3798 | + nextQueryItems.meta = { | |
| 3799 | + ...queryItems.meta, | |
| 3800 | + totalItems: Math.max( | |
| 3801 | + 0, | |
| 3802 | + queryItems.meta.totalItems - removedCount | |
| 3803 | + ), | |
| 3804 | + totalPages: null | |
| 3805 | + }; | |
| 3806 | + } | |
| 3807 | + return nextQueryItems; | |
| 3808 | + } | |
| 3770 | 3809 | var queries = (state = {}, action) => { |
| 3771 | 3810 | switch (action.type) { |
| 3772 | 3811 | case "RECEIVE_ITEMS": |
| 3773 | 3812 | return receiveQueries(state, action); |
| @@ -3783,14 +3822,12 @@ | ||
| 3783 | 3822 | Object.fromEntries( |
| 3784 | 3823 | Object.entries(contextQueries).map( |
| 3785 | 3824 | ([query, queryItems]) => [ |
| 3786 | 3825 | query, |
| 3787 | - { | |
| 3788 | - ...queryItems, | |
| 3789 | - itemIds: queryItems.itemIds.filter( | |
| 3790 | - (queryId) => !removedItems[queryId] | |
| 3791 | - ) | |
| 3792 | - } | |
| 3826 | + removeQueryItems( | |
| 3827 | + queryItems, | |
| 3828 | + removedItems | |
| 3829 | + ) | |
| 3793 | 3830 | ] |
| 3794 | 3831 | ) |
| 3795 | 3832 | ) |
| 3796 | 3833 | ] |
| @@ -4511,9 +4548,11 @@ | ||
| 4511 | 4548 | ); |
| 4512 | 4549 | if (!templates) { |
| 4513 | 4550 | return; |
| 4514 | 4551 | } |
| 4515 | - const id = templates.find(({ slug }) => slug === "front-page")?.id; | |
| 4552 | + const id = templates.find( | |
| 4553 | + ({ slug }) => slug === "front-page" | |
| 4554 | + )?.id; | |
| 4516 | 4555 | if (id) { |
| 4517 | 4556 | return id; |
| 4518 | 4557 | } |
| 4519 | 4558 | } |
| @@ -4643,48 +4682,28 @@ | ||
| 4643 | 4682 | return state.entities.config?.find( |
| 4644 | 4683 | (config) => config.kind === kind && config.name === name |
| 4645 | 4684 | ); |
| 4646 | 4685 | } |
| 4647 | - var getEntityRecord = (0, import_data9.createSelector)( | |
| 4648 | - ((state, kind, name, recordId, query) => { | |
| 4649 | - logEntityDeprecation(kind, name, "getEntityRecord"); | |
| 4650 | - const queriedState = state.entities.records?.[kind]?.[name]?.queriedData; | |
| 4651 | - if (!queriedState) { | |
| 4686 | + var getEntityRecord = ((state, kind, name, recordId, query) => { | |
| 4687 | + logEntityDeprecation(kind, name, "getEntityRecord"); | |
| 4688 | + const queriedState = state.entities.records?.[kind]?.[name]?.queriedData; | |
| 4689 | + if (!queriedState) { | |
| 4690 | + return void 0; | |
| 4691 | + } | |
| 4692 | + const context = query?.context ?? "default"; | |
| 4693 | + if (!query || !query._fields) { | |
| 4694 | + if (!queriedState.itemIsComplete[context]?.[recordId]) { | |
| 4652 | 4695 | return void 0; |
| 4653 | 4696 | } |
| 4654 | - const context = query?.context ?? "default"; | |
| 4655 | - if (!query || !query._fields) { | |
| 4656 | - if (!queriedState.itemIsComplete[context]?.[recordId]) { | |
| 4657 | - return void 0; | |
| 4658 | - } | |
| 4659 | - return queriedState.items[context][recordId]; | |
| 4660 | - } | |
| 4661 | - const item = queriedState.items[context]?.[recordId]; | |
| 4662 | - if (!item) { | |
| 4663 | - return item; | |
| 4664 | - } | |
| 4665 | - const filteredItem = {}; | |
| 4666 | - const fields = get_normalized_comma_separable_default(query._fields) ?? []; | |
| 4667 | - for (let f = 0; f < fields.length; f++) { | |
| 4668 | - const field = fields[f].split("."); | |
| 4669 | - let value = item; | |
| 4670 | - field.forEach((fieldName) => { | |
| 4671 | - value = value?.[fieldName]; | |
| 4672 | - }); | |
| 4673 | - setNestedValue(filteredItem, field, value); | |
| 4674 | - } | |
| 4675 | - return filteredItem; | |
| 4676 | - }), | |
| 4677 | - (state, kind, name, recordId, query) => { | |
| 4678 | - const context = query?.context ?? "default"; | |
| 4679 | - const queriedState = state.entities.records?.[kind]?.[name]?.queriedData; | |
| 4680 | - return [ | |
| 4681 | - queriedState?.items[context]?.[recordId], | |
| 4682 | - queriedState?.itemIsComplete[context]?.[recordId] | |
| 4683 | - ]; | |
| 4697 | + return queriedState.items[context][recordId]; | |
| 4684 | 4698 | } |
| 4685 | - ); | |
| 4686 | - getEntityRecord.__unstableNormalizeArgs = (args) => { | |
| 4699 | + const item = queriedState.items[context]?.[recordId]; | |
| 4700 | + if (!item) { | |
| 4701 | + return item; | |
| 4702 | + } | |
| 4703 | + return getFilteredItem(item, query._fields); | |
| 4704 | + }); | |
| 4705 | + getEntityRecord.normalizeArgs = (args) => { | |
| 4687 | 4706 | const newArgs = [...args]; |
| 4688 | 4707 | const recordKey = newArgs?.[2]; |
| 4689 | 4708 | newArgs[2] = isNumericID(recordKey) ? Number(recordKey) : recordKey; |
| 4690 | 4709 | return newArgs; |
| @@ -5103,47 +5122,27 @@ | ||
| 5103 | 5122 | } |
| 5104 | 5123 | } |
| 5105 | 5124 | return true; |
| 5106 | 5125 | } |
| 5107 | - var getRevision = (0, import_data9.createSelector)( | |
| 5108 | - (state, kind, name, recordKey, revisionKey, query) => { | |
| 5109 | - logEntityDeprecation(kind, name, "getRevision"); | |
| 5110 | - const queriedState = state.entities.records?.[kind]?.[name]?.revisions?.[recordKey]; | |
| 5111 | - if (!queriedState) { | |
| 5126 | + var getRevision = (state, kind, name, recordKey, revisionKey, query) => { | |
| 5127 | + logEntityDeprecation(kind, name, "getRevision"); | |
| 5128 | + const queriedState = state.entities.records?.[kind]?.[name]?.revisions?.[recordKey]; | |
| 5129 | + if (!queriedState) { | |
| 5130 | + return void 0; | |
| 5131 | + } | |
| 5132 | + const context = query?.context ?? "default"; | |
| 5133 | + if (!query || !query._fields) { | |
| 5134 | + if (!queriedState.itemIsComplete[context]?.[revisionKey]) { | |
| 5112 | 5135 | return void 0; |
| 5113 | 5136 | } |
| 5114 | - const context = query?.context ?? "default"; | |
| 5115 | - if (!query || !query._fields) { | |
| 5116 | - if (!queriedState.itemIsComplete[context]?.[revisionKey]) { | |
| 5117 | - return void 0; | |
| 5118 | - } | |
| 5119 | - return queriedState.items[context][revisionKey]; | |
| 5120 | - } | |
| 5121 | - const item = queriedState.items[context]?.[revisionKey]; | |
| 5122 | - if (!item) { | |
| 5123 | - return item; | |
| 5124 | - } | |
| 5125 | - const filteredItem = {}; | |
| 5126 | - const fields = get_normalized_comma_separable_default(query._fields) ?? []; | |
| 5127 | - for (let f = 0; f < fields.length; f++) { | |
| 5128 | - const field = fields[f].split("."); | |
| 5129 | - let value = item; | |
| 5130 | - field.forEach((fieldName) => { | |
| 5131 | - value = value?.[fieldName]; | |
| 5132 | - }); | |
| 5133 | - setNestedValue(filteredItem, field, value); | |
| 5134 | - } | |
| 5135 | - return filteredItem; | |
| 5136 | - }, | |
| 5137 | - (state, kind, name, recordKey, revisionKey, query) => { | |
| 5138 | - const context = query?.context ?? "default"; | |
| 5139 | - const queriedState = state.entities.records?.[kind]?.[name]?.revisions?.[recordKey]; | |
| 5140 | - return [ | |
| 5141 | - queriedState?.items?.[context]?.[revisionKey], | |
| 5142 | - queriedState?.itemIsComplete?.[context]?.[revisionKey] | |
| 5143 | - ]; | |
| 5137 | + return queriedState.items[context][revisionKey]; | |
| 5144 | 5138 | } |
| 5145 | - ); | |
| 5139 | + const item = queriedState.items[context]?.[revisionKey]; | |
| 5140 | + if (!item) { | |
| 5141 | + return item; | |
| 5142 | + } | |
| 5143 | + return getFilteredItem(item, query._fields); | |
| 5144 | + }; | |
| 5146 | 5145 | |
| 5147 | 5146 | // packages/core-data/build-module/actions.mjs |
| 5148 | 5147 | var actions_exports = {}; |
| 5149 | 5148 | __export(actions_exports, { |
| @@ -5511,12 +5510,9 @@ | ||
| 5511 | 5510 | name, |
| 5512 | 5511 | recordId |
| 5513 | 5512 | }); |
| 5514 | 5513 | let hasError = false; |
| 5515 | - let { baseURL } = entityConfig; | |
| 5516 | - if (kind === "postType" && name === "wp_template" && (recordId && typeof recordId === "string" && !/^\d+$/.test(recordId) || !window?.__experimentalTemplateActivate)) { | |
| 5517 | - baseURL = baseURL.slice(0, baseURL.lastIndexOf("/")) + "/templates"; | |
| 5518 | - } | |
| 5514 | + const { baseURL } = entityConfig; | |
| 5519 | 5515 | try { |
| 5520 | 5516 | let path = `${baseURL}/${recordId}`; |
| 5521 | 5517 | if (query) { |
| 5522 | 5518 | path = (0, import_url3.addQueryArgs)(path, query); |
| @@ -5716,12 +5712,9 @@ | ||
| 5716 | 5712 | }); |
| 5717 | 5713 | let updatedRecord; |
| 5718 | 5714 | let error; |
| 5719 | 5715 | let hasError = false; |
| 5720 | - let { baseURL } = entityConfig; | |
| 5721 | - if (kind === "postType" && name === "wp_template" && (recordId && typeof recordId === "string" && !/^\d+$/.test(recordId) || !window?.__experimentalTemplateActivate)) { | |
| 5722 | - baseURL = baseURL.slice(0, baseURL.lastIndexOf("/")) + "/templates"; | |
| 5723 | - } | |
| 5716 | + const { baseURL } = entityConfig; | |
| 5724 | 5717 | try { |
| 5725 | 5718 | const path = `${baseURL}${recordId ? "/" + recordId : ""}`; |
| 5726 | 5719 | const persistedRecord = !isNewRecord ? select5.getRawEntityRecord(kind, name, recordId) : {}; |
| 5727 | 5720 | if (entityConfig.syncConfig && !__unstableSkipSyncUpdate && !isNewRecord && persistedRecord) { |
| @@ -6455,8 +6448,9 @@ | ||
| 6455 | 6448 | return results; |
| 6456 | 6449 | } |
| 6457 | 6450 | function sortResults(results, search) { |
| 6458 | 6451 | const searchTokens = tokenize(search); |
| 6452 | + const scoreKey = (result) => `${result.kind}:${result.type}:${result.id}`; | |
| 6459 | 6453 | const scores = {}; |
| 6460 | 6454 | for (const result of results) { |
| 6461 | 6455 | if (result.title) { |
| 6462 | 6456 | const titleTokens = tokenize(result.title); |
| @@ -6471,14 +6465,16 @@ | ||
| 6471 | 6465 | ) |
| 6472 | 6466 | ); |
| 6473 | 6467 | const exactMatchScore = exactMatchingTokens.length / titleTokens.length * 10; |
| 6474 | 6468 | const subMatchScore = subMatchingTokens.length / titleTokens.length; |
| 6475 | - scores[result.id] = exactMatchScore + subMatchScore; | |
| 6469 | + scores[scoreKey(result)] = exactMatchScore + subMatchScore; | |
| 6476 | 6470 | } else { |
| 6477 | - scores[result.id] = 0; | |
| 6471 | + scores[scoreKey(result)] = 0; | |
| 6478 | 6472 | } |
| 6479 | 6473 | } |
| 6480 | - return results.sort((a, b) => scores[b.id] - scores[a.id]); | |
| 6474 | + return results.sort( | |
| 6475 | + (a, b) => scores[scoreKey(b)] - scores[scoreKey(a)] | |
| 6476 | + ); | |
| 6481 | 6477 | } |
| 6482 | 6478 | function tokenize(text) { |
| 6483 | 6479 | return text.toLowerCase().match(/[\p{L}\p{N}]+/gu) || []; |
| 6484 | 6480 | } |
| @@ -6606,12 +6602,9 @@ | ||
| 6606 | 6602 | if (hasRecord) { |
| 6607 | 6603 | return; |
| 6608 | 6604 | } |
| 6609 | 6605 | } |
| 6610 | - let { baseURL } = entityConfig; | |
| 6611 | - if (kind === "postType" && name === "wp_template" && (key && typeof key === "string" && !/^\d+$/.test(key) || !window?.__experimentalTemplateActivate)) { | |
| 6612 | - baseURL = baseURL.slice(0, baseURL.lastIndexOf("/")) + "/templates"; | |
| 6613 | - } | |
| 6606 | + const { baseURL } = entityConfig; | |
| 6614 | 6607 | const path = (0, import_url6.addQueryArgs)(baseURL + (key ? "/" + key : ""), { |
| 6615 | 6608 | ...entityConfig.baseURLParams, |
| 6616 | 6609 | ...query |
| 6617 | 6610 | }); |
| @@ -6619,9 +6612,8 @@ | ||
| 6619 | 6612 | const record = await response.json(); |
| 6620 | 6613 | const permissions = getUserPermissionsFromAllowHeader( |
| 6621 | 6614 | response.headers?.get("allow") |
| 6622 | 6615 | ); |
| 6623 | - const canUserResolutionsArgs = []; | |
| 6624 | 6616 | const receiveUserPermissionArgs = {}; |
| 6625 | 6617 | for (const action of ALLOWED_RESOURCE_ACTIONS) { |
| 6626 | 6618 | receiveUserPermissionArgs[getUserPermissionCacheKey(action, { |
| 6627 | 6619 | kind, |
| @@ -6627,13 +6619,10 @@ | ||
| 6627 | 6619 | kind, |
| 6628 | 6620 | name, |
| 6629 | 6621 | id: key |
| 6630 | 6622 | })] = permissions[action]; |
| 6631 | - canUserResolutionsArgs.push([ | |
| 6632 | - action, | |
| 6633 | - { kind, name, id: key } | |
| 6634 | - ]); | |
| 6635 | 6623 | } |
| 6624 | + const canUserResolutionsArgs = [[{ kind, name, id: key }]]; | |
| 6636 | 6625 | if (entityConfig.syncConfig && isNumericID(key) && !query) { |
| 6637 | 6626 | const objectType = `${kind}/${name}`; |
| 6638 | 6627 | const objectId = key; |
| 6639 | 6628 | const recordWithTransients = { ...record }; |
| @@ -6799,13 +6788,9 @@ | ||
| 6799 | 6788 | ]) |
| 6800 | 6789 | ].join() |
| 6801 | 6790 | }; |
| 6802 | 6791 | } |
| 6803 | - let { baseURL } = entityConfig; | |
| 6804 | - const { combinedTemplates = true } = query; | |
| 6805 | - if (kind === "postType" && name === "wp_template" && combinedTemplates) { | |
| 6806 | - baseURL = baseURL.slice(0, baseURL.lastIndexOf("/")) + "/templates"; | |
| 6807 | - } | |
| 6792 | + const { baseURL } = entityConfig; | |
| 6808 | 6793 | const path = (0, import_url6.addQueryArgs)(baseURL, { |
| 6809 | 6794 | ...entityConfig.baseURLParams, |
| 6810 | 6795 | ...query |
| 6811 | 6796 | }); |
| @@ -6911,13 +6896,12 @@ | ||
| 6911 | 6896 | })); |
| 6912 | 6897 | const canUserResolutionsArgs = []; |
| 6913 | 6898 | const receiveUserPermissionArgs = {}; |
| 6914 | 6899 | for (const targetHint of targetHints) { |
| 6900 | + canUserResolutionsArgs.push([ | |
| 6901 | + { kind, name, id: targetHint.id } | |
| 6902 | + ]); | |
| 6915 | 6903 | for (const action of ALLOWED_RESOURCE_ACTIONS) { |
| 6916 | - canUserResolutionsArgs.push([ | |
| 6917 | - action, | |
| 6918 | - { kind, name, id: targetHint.id } | |
| 6919 | - ]); | |
| 6920 | 6904 | receiveUserPermissionArgs[getUserPermissionCacheKey(action, { |
| 6921 | 6905 | kind, |
| 6922 | 6906 | name, |
| 6923 | 6907 | id: targetHint.id |
| @@ -6966,26 +6950,9 @@ | ||
| 6966 | 6950 | } catch { |
| 6967 | 6951 | dispatch3.receiveEmbedPreview(url, false); |
| 6968 | 6952 | } |
| 6969 | 6953 | }; |
| 6970 | - var canUser2 = (requestedAction, resource, id) => async ({ dispatch: dispatch3, registry, resolveSelect: resolveSelect2 }) => { | |
| 6971 | - if (!ALLOWED_RESOURCE_ACTIONS.includes(requestedAction)) { | |
| 6972 | - throw new Error(`'${requestedAction}' is not a valid action.`); | |
| 6973 | - } | |
| 6974 | - const { hasStartedResolution } = registry.select(STORE_NAME); | |
| 6975 | - for (const relatedAction of ALLOWED_RESOURCE_ACTIONS) { | |
| 6976 | - if (relatedAction === requestedAction) { | |
| 6977 | - continue; | |
| 6978 | - } | |
| 6979 | - const isAlreadyResolving = hasStartedResolution("canUser", [ | |
| 6980 | - relatedAction, | |
| 6981 | - resource, | |
| 6982 | - id | |
| 6983 | - ]); | |
| 6984 | - if (isAlreadyResolving) { | |
| 6985 | - return; | |
| 6986 | - } | |
| 6987 | - } | |
| 6954 | + var canUser2 = (resource, id) => async ({ dispatch: dispatch3, resolveSelect: resolveSelect2 }) => { | |
| 6988 | 6955 | let resourcePath = null; |
| 6989 | 6956 | if (typeof resource === "object") { |
| 6990 | 6957 | if (!resource.kind || !resource.name) { |
| 6991 | 6958 | throw new Error("The entity resource object is not valid."); |
| @@ -7016,22 +6983,16 @@ | ||
| 7016 | 6983 | const permissions = getUserPermissionsFromAllowHeader( |
| 7017 | 6984 | response.headers?.get("allow") |
| 7018 | 6985 | ); |
| 7019 | 6986 | const receiveUserPermissionArgs = {}; |
| 7020 | - const canUserResolutionsArgs = []; | |
| 7021 | 6987 | for (const action of ALLOWED_RESOURCE_ACTIONS) { |
| 7022 | 6988 | receiveUserPermissionArgs[getUserPermissionCacheKey(action, resource, id)] = permissions[action]; |
| 7023 | - if (action !== requestedAction) { | |
| 7024 | - canUserResolutionsArgs.push([action, resource, id]); | |
| 7025 | - } | |
| 7026 | 6989 | } |
| 7027 | - registry.batch(() => { | |
| 7028 | - dispatch3.receiveUserPermissions(receiveUserPermissionArgs); | |
| 7029 | - dispatch3.finishResolutions("canUser", canUserResolutionsArgs); | |
| 7030 | - }); | |
| 6990 | + dispatch3.receiveUserPermissions(receiveUserPermissionArgs); | |
| 7031 | 6991 | }; |
| 7032 | - var canUserEditEntityRecord2 = (kind, name, recordId) => async ({ dispatch: dispatch3 }) => { | |
| 7033 | - await dispatch3(canUser2("update", { kind, name, id: recordId })); | |
| 6992 | + canUser2.getResolutionArgs = (action, resource, id) => [resource, id]; | |
| 6993 | + var canUserEditEntityRecord2 = (kind, name, recordId) => async ({ resolveSelect: resolveSelect2 }) => { | |
| 6994 | + await resolveSelect2.canUser("update", { kind, name, id: recordId }); | |
| 7034 | 6995 | }; |
| 7035 | 6996 | var getAutosaves2 = (postType, postId) => async ({ dispatch: dispatch3, resolveSelect: resolveSelect2 }) => { |
| 7036 | 6997 | const { |
| 7037 | 6998 | rest_base: restBase, |
| @@ -7182,9 +7143,9 @@ | ||
| 7182 | 7143 | const template = await (0, import_api_fetch9.default)({ |
| 7183 | 7144 | path: (0, import_url6.addQueryArgs)("/wp/v2/templates/lookup", query) |
| 7184 | 7145 | }); |
| 7185 | 7146 | await resolveSelect2.getEntitiesConfig("postType"); |
| 7186 | - const id = window?.__experimentalTemplateActivate ? template?.wp_id || template?.id : template?.id; | |
| 7147 | + const id = template?.id; | |
| 7187 | 7148 | registry.batch(() => { |
| 7188 | 7149 | dispatch3.receiveDefaultTemplateId(query, id || ""); |
| 7189 | 7150 | if (id) { |
| 7190 | 7151 | template.id = id; |
| @@ -7200,11 +7161,8 @@ | ||
| 7200 | 7161 | ]); |
| 7201 | 7162 | } |
| 7202 | 7163 | }); |
| 7203 | 7164 | }; |
| 7204 | - getDefaultTemplateId2.shouldInvalidate = (action) => { | |
| 7205 | - return action.type === "RECEIVE_ITEMS" && action.kind === "root" && action.name === "site" && !!action.persistedEdits; | |
| 7206 | - }; | |
| 7207 | 7165 | var getRevisions2 = (kind, name, recordKey, query = {}) => async ({ dispatch: dispatch3, resolveSelect: resolveSelect2 }) => { |
| 7208 | 7166 | const configs = await resolveSelect2.getEntitiesConfig(kind); |
| 7209 | 7167 | const entityConfig = configs.find( |
| 7210 | 7168 | (config) => config.name === name && config.kind === kind |
| @@ -7611,9 +7569,17 @@ | ||
| 7611 | 7569 | ...parent?.[kind], |
| 7612 | 7570 | [name]: id |
| 7613 | 7571 | } |
| 7614 | 7572 | }, |
| 7615 | - ...revisionId !== void 0 && { revisionId } | |
| 7573 | + ...revisionId !== void 0 && kind && { | |
| 7574 | + revision: { | |
| 7575 | + ...parent?.revision, | |
| 7576 | + [kind]: { | |
| 7577 | + ...parent?.revision?.[kind], | |
| 7578 | + [name]: revisionId | |
| 7579 | + } | |
| 7580 | + } | |
| 7581 | + } | |
| 7616 | 7582 | }), |
| 7617 | 7583 | [parent, kind, name, id, revisionId] |
| 7618 | 7584 | ); |
| 7619 | 7585 | return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EntityContext.Provider, { value: childContext, children }); |
| @@ -8260,38 +8226,36 @@ | ||
| 8260 | 8226 | |
| 8261 | 8227 | // packages/core-data/build-module/hooks/use-entity-prop.mjs |
| 8262 | 8228 | var import_element7 = __toESM(require_element(), 1); |
| 8263 | 8229 | var import_data15 = __toESM(require_data(), 1); |
| 8230 | + var REVISION_QUERY = { | |
| 8231 | + context: "edit", | |
| 8232 | + _fields: "id,date,author,meta,title,excerpt,content.raw" | |
| 8233 | + }; | |
| 8264 | 8234 | function useEntityProp(kind, name, prop, _id) { |
| 8265 | 8235 | const providerId = useEntityId(kind, name); |
| 8266 | 8236 | const id = _id ?? providerId; |
| 8267 | 8237 | const context = (0, import_element7.useContext)(EntityContext); |
| 8268 | - const revisionId = context?.revisionId; | |
| 8238 | + const revisionId = String(id) === String(providerId) ? context?.revision?.[kind]?.[name] : void 0; | |
| 8269 | 8239 | const { value, fullValue } = (0, import_data15.useSelect)( |
| 8270 | 8240 | (select5) => { |
| 8271 | 8241 | if (revisionId) { |
| 8272 | - const revisions = select5(STORE_NAME).getRevisions( | |
| 8242 | + const revision = select5(STORE_NAME).getRevision( | |
| 8273 | 8243 | kind, |
| 8274 | 8244 | name, |
| 8275 | 8245 | id, |
| 8276 | - { | |
| 8277 | - per_page: -1, | |
| 8278 | - context: "edit", | |
| 8279 | - _fields: "id,date,author,meta,title.raw,excerpt.raw,content.raw" | |
| 8280 | - } | |
| 8246 | + revisionId, | |
| 8247 | + REVISION_QUERY | |
| 8281 | 8248 | ); |
| 8282 | - const entityConfig = select5(STORE_NAME).getEntityConfig( | |
| 8283 | - kind, | |
| 8284 | - name | |
| 8285 | - ); | |
| 8286 | - const revKey = entityConfig?.revisionKey || DEFAULT_ENTITY_KEY; | |
| 8287 | - const revision = revisions?.find( | |
| 8288 | - (r2) => r2[revKey] === revisionId | |
| 8289 | - ); | |
| 8290 | - return revision ? { | |
| 8291 | - value: revision[prop]?.raw ?? revision[prop], | |
| 8292 | - fullValue: revision[prop] | |
| 8293 | - } : {}; | |
| 8249 | + const propValue = revision?.[prop]; | |
| 8250 | + if (propValue === void 0) { | |
| 8251 | + return {}; | |
| 8252 | + } | |
| 8253 | + const isRawAttribute = propValue !== null && typeof propValue === "object" && "raw" in propValue; | |
| 8254 | + return { | |
| 8255 | + value: isRawAttribute ? propValue.raw : propValue, | |
| 8256 | + fullValue: propValue | |
| 8257 | + }; | |
| 8294 | 8258 | } |
| 8295 | 8259 | const { getEntityRecord: getEntityRecord3, getEditedEntityRecord: getEditedEntityRecord3 } = select5(STORE_NAME); |
| 8296 | 8260 | const record = getEntityRecord3(kind, name, id); |
| 8297 | 8261 | const editedRecord = getEditedEntityRecord3(kind, name, id); |
| @@ -8500,34 +8464,49 @@ | ||
| 8500 | 8464 | |
| 8501 | 8465 | // packages/icons/build-module/library/footer.mjs |
| 8502 | 8466 | var import_primitives = __toESM(require_primitives(), 1); |
| 8503 | 8467 | var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); |
| 8504 | - var footer_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.Path, { fillRule: "evenodd", d: "M18 5.5h-8v8h8.5V6a.5.5 0 00-.5-.5zm-9.5 8h-3V6a.5.5 0 01.5-.5h2.5v8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" }) }); | |
| 8468 | + var footer_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: [ | |
| 8469 | + /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.Path, { d: "M9.75 4.75H18C18.6904 4.75 19.25 5.30964 19.25 6V14.25M9.75 4.75H6C5.30964 4.75 4.75 5.30964 4.75 6V14.25M9.75 4.75V14.25M19.25 14.25V18C19.25 18.6904 18.6904 19.25 18 19.25H6C5.30964 19.25 4.75 18.6904 4.75 18V14.25M19.25 14.25H9.75M9.75 14.25H4.75", vectorEffect: "non-scaling-stroke" }), | |
| 8470 | + /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives.Path, { d: "M19.25 15.5V18C19.25 18.6904 18.6904 19.25 18 19.25H6C5.30964 19.25 4.75 18.6904 4.75 18V15.5C4.75 14.8096 5.30964 14.25 6 14.25H18C18.6904 14.25 19.25 14.8096 19.25 15.5Z", fill: "currentColor", vectorEffect: "non-scaling-stroke" }) | |
| 8471 | + ] }); | |
| 8505 | 8472 | |
| 8506 | 8473 | // packages/icons/build-module/library/header.mjs |
| 8507 | 8474 | var import_primitives2 = __toESM(require_primitives(), 1); |
| 8508 | 8475 | var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); |
| 8509 | - var header_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.Path, { d: "M18.5 10.5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" }) }); | |
| 8476 | + var header_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: [ | |
| 8477 | + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.Path, { d: "M9.75 19.25H18C18.6904 19.25 19.25 18.6904 19.25 18V9.75M9.75 19.25H6C5.30964 19.25 4.75 18.6904 4.75 18V9.75M9.75 19.25V9.75M19.25 9.75V6C19.25 5.30964 18.6904 4.75 18 4.75H6C5.30964 4.75 4.75 5.30964 4.75 6V9.75M19.25 9.75H9.75M9.75 9.75H4.75", vectorEffect: "non-scaling-stroke" }), | |
| 8478 | + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives2.Path, { d: "M19.25 8.5V6C19.25 5.30964 18.6904 4.75 18 4.75H6C5.30964 4.75 4.75 5.30964 4.75 6V8.5C4.75 9.19036 5.30964 9.75 6 9.75H18C18.6904 9.75 19.25 9.19036 19.25 8.5Z", fill: "currentColor", vectorEffect: "non-scaling-stroke" }) | |
| 8479 | + ] }); | |
| 8510 | 8480 | |
| 8511 | 8481 | // packages/icons/build-module/library/layout.mjs |
| 8512 | 8482 | var import_primitives3 = __toESM(require_primitives(), 1); |
| 8513 | 8483 | var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); |
| 8514 | - var layout_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.Path, { d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" }) }); | |
| 8484 | + var layout_default = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_primitives3.Path, { d: "M9.75 19.25H18C18.6904 19.25 19.25 18.6904 19.25 18V9.75M9.75 19.25H6C5.30964 19.25 4.75 18.6904 4.75 18V9.75M9.75 19.25V9.75M19.25 9.75V6C19.25 5.30964 18.6904 4.75 18 4.75H6C5.30964 4.75 4.75 5.30964 4.75 6V9.75M19.25 9.75H9.75M9.75 9.75H4.75", vectorEffect: "non-scaling-stroke" }) }); | |
| 8515 | 8485 | |
| 8516 | 8486 | // packages/icons/build-module/library/navigation-overlay.mjs |
| 8517 | 8487 | var import_primitives4 = __toESM(require_primitives(), 1); |
| 8518 | 8488 | var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); |
| 8519 | - var navigation_overlay_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.Path, { d: "M18.5 10a1.5 1.5 0 0 1 1.5 1.5v7a1.5 1.5 0 0 1-1.5 1.5h-7a1.5 1.5 0 0 1-1.5-1.5v-7a1.5 1.5 0 0 1 1.5-1.5zM16 4a2 2 0 0 1 2 2v2h-1.5V6a.5.5 0 0 0-.5-.5H6a.5.5 0 0 0-.5.5v3H8v1.5H5.5V16a.5.5 0 0 0 .5.5h2V18H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z" }) }); | |
| 8489 | + var navigation_overlay_default = /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_primitives4.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: [ | |
| 8490 | + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.Path, { d: "M4.75 9.25V16C4.75 16.6904 5.30964 17.25 6 17.25H8M4.75 9.25V6C4.75 5.30964 5.30964 4.75 6 4.75H16C16.6904 4.75 17.25 5.30964 17.25 6V8M4.75 9.25H8", vectorEffect: "non-scaling-stroke" }), | |
| 8491 | + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_primitives4.Path, { d: "M10.75 11.25C10.75 10.9739 10.9739 10.75 11.25 10.75H18.75C19.0261 10.75 19.25 10.9739 19.25 11.25V18.75C19.25 19.0261 19.0261 19.25 18.75 19.25H11.25C10.9739 19.25 10.75 19.0261 10.75 18.75V11.25Z", fill: "currentColor", vectorEffect: "non-scaling-stroke" }) | |
| 8492 | + ] }); | |
| 8520 | 8493 | |
| 8521 | 8494 | // packages/icons/build-module/library/sidebar.mjs |
| 8522 | 8495 | var import_primitives5 = __toESM(require_primitives(), 1); |
| 8523 | 8496 | var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); |
| 8524 | - var sidebar_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.Path, { d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z" }) }); | |
| 8497 | + var sidebar_default = /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_primitives5.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: [ | |
| 8498 | + /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.Path, { d: "M9.75 19.25H18C18.6904 19.25 19.25 18.6904 19.25 18V9.75M9.75 19.25H6C5.30964 19.25 4.75 18.6904 4.75 18V9.75M9.75 19.25V9.75M19.25 9.75V6C19.25 5.30964 18.6904 4.75 18 4.75H6C5.30964 4.75 4.75 5.30964 4.75 6V9.75M19.25 9.75H9.75M9.75 9.75H4.75", vectorEffect: "non-scaling-stroke" }), | |
| 8499 | + /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_primitives5.Path, { d: "M6 19.25H9.75V9.75H4.75V18C4.75 18.6904 5.30964 19.25 6 19.25Z", fill: "currentColor", vectorEffect: "non-scaling-stroke" }) | |
| 8500 | + ] }); | |
| 8525 | 8501 | |
| 8526 | 8502 | // packages/icons/build-module/library/symbol-filled.mjs |
| 8527 | 8503 | var import_primitives6 = __toESM(require_primitives(), 1); |
| 8528 | 8504 | var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); |
| 8529 | - var symbol_filled_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives6.Path, { d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" }) }); | |
| 8505 | + var symbol_filled_default = /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_primitives6.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", style: { fill: "none" }, stroke: "currentColor", strokeWidth: "1.5", children: [ | |
| 8506 | + /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives6.Path, { d: "M15.2071 6.20711L20.2929 11.2929C20.6834 11.6834 20.6834 12.3166 20.2929 12.7071L15.2071 17.7929C14.8166 18.1834 14.1834 18.1834 13.7929 17.7929L8.70711 12.7071C8.31658 12.3166 8.31658 11.6834 8.70711 11.2929L13.7929 6.20711C14.1834 5.81658 14.8166 5.81658 15.2071 6.20711Z", fill: "currentColor", vectorEffect: "non-scaling-stroke" }), | |
| 8507 | + /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_primitives6.Path, { d: "M9.5 5.5L3.70711 11.2929C3.31658 11.6834 3.31658 12.3166 3.70711 12.7071L9.5 18.5", vectorEffect: "non-scaling-stroke" }) | |
| 8508 | + ] }); | |
| 8530 | 8509 | |
| 8531 | 8510 | // packages/core-data/build-module/utils/get-template-part-icon.mjs |
| 8532 | 8511 | function getTemplatePartIcon(areaOrIconName) { |
| 8533 | 8512 | if ("header" === areaOrIconName) { |