admins-components 9.0.90 → 9.0.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/admins-components111.js +2 -1
  2. package/dist/admins-components111.js.map +1 -1
  3. package/dist/admins-components173.js +2 -2
  4. package/dist/admins-components173.js.map +1 -1
  5. package/dist/admins-components23.js +1 -1
  6. package/dist/admins-components23.js.map +1 -1
  7. package/dist/admins-components25.js.map +1 -1
  8. package/dist/admins-components26.js +1 -1
  9. package/dist/admins-components26.js.map +1 -1
  10. package/dist/admins-components28.js.map +1 -1
  11. package/dist/main.css +1 -1
  12. package/dist/src/services/articleEditorService.d.ts +8 -0
  13. package/dist/styles/components/calendar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  14. package/dist/styles/components/copy-to-clipboard.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  15. package/dist/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  16. package/dist/styles/components/data-table/data-filters.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  17. package/dist/styles/components/data-table/data-list-guide.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  18. package/dist/styles/components/data-table/data-list-options.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  19. package/dist/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  20. package/dist/styles/components/data-table/data-sort.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  21. package/dist/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  22. package/dist/styles/components/data-table/filter-tags.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  23. package/dist/styles/components/data-table/filters-history.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  24. package/dist/styles/components/data-table/tag-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  25. package/dist/styles/components/datepickers.scss_vue_type_style_index_1_src_true_lang.css +1 -1
  26. package/dist/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  27. package/dist/styles/components/header.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  28. package/dist/styles/components/image-picker.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  29. package/dist/styles/components/loader.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  30. package/dist/styles/components/modal.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  31. package/dist/styles/components/sidebar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  32. package/dist/styles/components/toast-notification.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  33. package/dist/vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_41b1d56e_lang.css +1 -0
  34. package/dist/widget.css +1 -1
  35. package/package.json +1 -1
  36. package/dist/vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_56a4bfd6_lang.css +0 -1
@@ -12,6 +12,7 @@ var i = class {
12
12
  getImagesConfig;
13
13
  getPresenceConfig;
14
14
  sites;
15
+ getMeta;
15
16
  authorsSearch;
16
17
  authorsDetailsByIds;
17
18
  articleSeriesSearch;
@@ -38,7 +39,7 @@ var i = class {
38
39
  return this.postRequest(`admin/${e}/detailsByIds`, { ids: [] }, t);
39
40
  }
40
41
  constructor(r) {
41
- this.articleEditorBackendUrl = r, this.baseUrl = this.articleEditorBackendUrl, this.searchPosts = n(new e(this.baseUrl, "admin/Posts/searchPosts", t.POST, this.errorMap("Cikk lekérdezés")), {}, void 0, void 0), this.whoAmI = n(new e(this.baseUrl, "whoami", t.GET, this.errorMap("Felhasználói adatok lekérdezése")), void 0, void 0, void 0), this.getPostsConfig = n(new e(this.baseUrl, "/admin/Widgets/{name}", t.GET, this.errorMap("Search Posts Widget konfiguráció lekérése")), void 0, { name: "" }, void 0), this.getImagesConfig = n(new e(this.baseUrl, "/admin/Widgets/{name}", t.GET, this.errorMap("Widget konfiguráció lekérése")), void 0, { name: "" }, void 0), this.getPresenceConfig = n(new e(this.baseUrl, "/admin/Widgets/{name}", t.GET, this.errorMap("Widget konfiguráció lekérése")), void 0, { name: "" }, void 0), this.sites = n(new e(this.baseUrl, "/admin/sites", t.GET, this.errorMap("Site lekérése")), void 0, void 0, void 0), this.authorsSearch = this.searchRequest("Authors", "Szerzők"), this.authorsDetailsByIds = this.detailsByIdsRequest("Authors", "Szerzők"), this.articleSeriesSearch = this.searchRequest("ArticleSeries", "Cikk sorozatok"), this.articleSeriesDetailsByIds = this.detailsByIdsRequest("ArticleSeries", "Cikk sorozatok"), this.partnersSearch = this.searchRequest("Partners", "Partnerek"), this.partnersDetailsByIds = this.detailsByIdsRequest("Partners", "Partnerek"), this.columnsSearch = this.searchRequest("Columns", "Rovatok"), this.columnsDetailsByIds = this.detailsByIdsRequest("Columns", "Rovatok"), this.digitalSupplementsSearch = this.searchRequest("DigitalSupplements", "Digitális kiegészítők"), this.digitalSupplementsDetailsByIds = this.detailsByIdsRequest("DigitalSupplements", "Digitális kiegészítők"), this.tagsSearch = this.searchRequest("Tags", "Címkék"), this.tagsDetailsByIds = this.detailsByIdsRequest("Tags", "Címkék"), this.getRelationsCount = this.postRequest("admin/Relations/byIds", {
42
+ this.articleEditorBackendUrl = r, this.baseUrl = this.articleEditorBackendUrl, this.getMeta = n(new e(this.baseUrl, "admin/Embeds/meta", t.POST, this.errorMap("Meta adatok")), { url: "" }, void 0, void 0), this.searchPosts = n(new e(this.baseUrl, "admin/Posts/searchPosts", t.POST, this.errorMap("Cikk lekérdezés")), {}, void 0, void 0), this.whoAmI = n(new e(this.baseUrl, "whoami", t.GET, this.errorMap("Felhasználói adatok lekérdezése")), void 0, void 0, void 0), this.getPostsConfig = n(new e(this.baseUrl, "/admin/Widgets/{name}", t.GET, this.errorMap("Search Posts Widget konfiguráció lekérése")), void 0, { name: "" }, void 0), this.getImagesConfig = n(new e(this.baseUrl, "/admin/Widgets/{name}", t.GET, this.errorMap("Widget konfiguráció lekérése")), void 0, { name: "" }, void 0), this.getPresenceConfig = n(new e(this.baseUrl, "/admin/Widgets/{name}", t.GET, this.errorMap("Widget konfiguráció lekérése")), void 0, { name: "" }, void 0), this.sites = n(new e(this.baseUrl, "/admin/sites", t.GET, this.errorMap("Site lekérése")), void 0, void 0, void 0), this.authorsSearch = this.searchRequest("Authors", "Szerzők"), this.authorsDetailsByIds = this.detailsByIdsRequest("Authors", "Szerzők"), this.articleSeriesSearch = this.searchRequest("ArticleSeries", "Cikk sorozatok"), this.articleSeriesDetailsByIds = this.detailsByIdsRequest("ArticleSeries", "Cikk sorozatok"), this.partnersSearch = this.searchRequest("Partners", "Partnerek"), this.partnersDetailsByIds = this.detailsByIdsRequest("Partners", "Partnerek"), this.columnsSearch = this.searchRequest("Columns", "Rovatok"), this.columnsDetailsByIds = this.detailsByIdsRequest("Columns", "Rovatok"), this.digitalSupplementsSearch = this.searchRequest("DigitalSupplements", "Digitális kiegészítők"), this.digitalSupplementsDetailsByIds = this.detailsByIdsRequest("DigitalSupplements", "Digitális kiegészítők"), this.tagsSearch = this.searchRequest("Tags", "Címkék"), this.tagsDetailsByIds = this.detailsByIdsRequest("Tags", "Címkék"), this.getRelationsCount = this.postRequest("admin/Relations/byIds", {
42
43
  ids: [],
43
44
  outputEntityType: ""
44
45
  }, "Kapcsolatok számlálása");
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components111.js","names":[],"sources":["../src/services/articleEditorService.ts"],"sourcesContent":["import type { SearchPostsPayload, SearchPostsResponse } from '@/models/SearchPosts'\nimport { FetchDetails, type HttpRequest, initRequest, Methods } from '@/services/services'\n\nimport type {\n ArticleSeriesDetails,\n AuthorDetails,\n ColumnDetails,\n DigitalSupplementDetails,\n GetRelationsCountPayload,\n IdsPayload,\n PartnerDetails,\n PresenceWidgetConfig,\n RelationCount,\n SearchArticleSeriesResult,\n SearchAuthorsPayload,\n SearchAuthorsResult,\n SearchColumnsPayload,\n SearchColumnsResult,\n SearchDigitalSupplementsPayload,\n SearchDigitalSupplementsResult,\n SearchEntityPayload,\n SearchImagesWidgetConfig,\n SearchPartnersResult,\n SearchPostWidgetConfig,\n SearchTagsPayload,\n SearchTagsResult,\n Site,\n TagDetails,\n UserInfoModel,\n WidgetDetailsResponse,\n} from '@/services/models'\n\nexport function useArticleEditorService(url: string): ArticleEditorService {\n return new ArticleEditorService(url)\n}\n\nexport class ArticleEditorService {\n baseUrl: string\n searchPosts: HttpRequest<SearchPostsPayload, undefined, undefined, SearchPostsResponse>\n whoAmI: HttpRequest<void, undefined, undefined, UserInfoModel>\n getPostsConfig: HttpRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchPostWidgetConfig>\n >\n getImagesConfig: HttpRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchImagesWidgetConfig>\n >\n getPresenceConfig: HttpRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<PresenceWidgetConfig>\n >\n sites: HttpRequest<undefined, undefined, undefined, Site[]>\n\n /* getMeta: HttpRequest<\n { url: string },\n undefined,\n undefined,\n { url: string; title: string; lead: string; imageUrl: string }\n > */\n\n authorsSearch: HttpRequest<SearchAuthorsPayload, undefined, undefined, SearchAuthorsResult>\n\n authorsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, AuthorDetails[]>\n\n articleSeriesSearch: HttpRequest<\n SearchEntityPayload,\n undefined,\n undefined,\n SearchArticleSeriesResult\n >\n\n articleSeriesDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, ArticleSeriesDetails[]>\n\n columnsSearch: HttpRequest<SearchColumnsPayload, undefined, undefined, SearchColumnsResult>\n\n columnsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, ColumnDetails[]>\n\n digitalSupplementsSearch: HttpRequest<\n SearchDigitalSupplementsPayload,\n undefined,\n undefined,\n SearchDigitalSupplementsResult\n >\n\n digitalSupplementsDetailsByIds: HttpRequest<\n IdsPayload,\n undefined,\n undefined,\n DigitalSupplementDetails[]\n >\n\n partnersSearch: HttpRequest<SearchEntityPayload, undefined, undefined, SearchPartnersResult>\n\n partnersDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, PartnerDetails[]>\n\n tagsSearch: HttpRequest<SearchTagsPayload, undefined, undefined, SearchTagsResult>\n\n tagsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, TagDetails[]>\n\n getRelationsCount: HttpRequest<GetRelationsCountPayload, undefined, undefined, RelationCount[]>\n\n private errorMap(entityName: string) {\n return new Map<number, string>([\n [400, `${entityName} lekérdezése ismeretlen 400 hiba!`],\n [500, `${entityName} lekérdezése ismeretlen 500 hiba!`],\n ])\n }\n\n private postRequest<Payload, Result>(path: string, defaultPayload: Payload, entityName: string) {\n return initRequest<Payload, undefined, undefined, Result>(\n new FetchDetails(this.baseUrl, path, Methods.POST, this.errorMap(entityName)),\n defaultPayload,\n undefined,\n undefined,\n )\n }\n\n private searchRequest<Payload, Result>(resource: string, entityName: string) {\n return this.postRequest<Payload, Result>(`admin/${resource}/search`, {} as Payload, entityName)\n }\n\n private detailsByIdsRequest<Result>(resource: string, entityName: string) {\n return this.postRequest<IdsPayload, Result>(\n `admin/${resource}/detailsByIds`,\n { ids: [] },\n entityName,\n )\n }\n\n constructor(public articleEditorBackendUrl: string) {\n this.baseUrl = this.articleEditorBackendUrl\n\n /* this.getMeta = initRequest<\n { url: string },\n undefined,\n undefined,\n { url: string; title: string; lead: string; imageUrl: string }\n >(\n new FetchDetails(\n this.baseUrl,\n 'admin/Embeds/meta',\n Methods.POST,\n this.errorMap('Meta adatok'),\n ),\n { url: '' },\n undefined,\n undefined,\n ) */\n\n this.searchPosts = initRequest<SearchPostsPayload, undefined, undefined, SearchPostsResponse>(\n new FetchDetails(\n this.baseUrl,\n 'admin/Posts/searchPosts',\n Methods.POST,\n this.errorMap('Cikk lekérdezés'),\n ),\n {} as SearchPostsPayload,\n undefined,\n undefined,\n )\n\n this.whoAmI = initRequest<void, undefined, undefined, UserInfoModel>(\n new FetchDetails(\n this.baseUrl,\n 'whoami',\n Methods.GET,\n this.errorMap('Felhasználói adatok lekérdezése'),\n ),\n undefined,\n undefined,\n undefined,\n )\n\n this.getPostsConfig = initRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchPostWidgetConfig>\n >(\n new FetchDetails(\n this.baseUrl,\n '/admin/Widgets/{name}',\n Methods.GET,\n this.errorMap('Search Posts Widget konfiguráció lekérése'),\n ),\n undefined,\n { name: '' } as { name: string },\n undefined,\n )\n\n this.getImagesConfig = initRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchImagesWidgetConfig>\n >(\n new FetchDetails(\n this.baseUrl,\n '/admin/Widgets/{name}',\n Methods.GET,\n this.errorMap('Widget konfiguráció lekérése'),\n ),\n undefined,\n { name: '' } as { name: string },\n undefined,\n )\n\n this.getPresenceConfig = initRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<PresenceWidgetConfig>\n >(\n new FetchDetails(\n this.baseUrl,\n '/admin/Widgets/{name}',\n Methods.GET,\n this.errorMap('Widget konfiguráció lekérése'),\n ),\n undefined,\n { name: '' } as { name: string },\n undefined,\n )\n\n this.sites = initRequest<undefined, undefined, undefined, Site[]>(\n new FetchDetails(this.baseUrl, '/admin/sites', Methods.GET, this.errorMap('Site lekérése')),\n undefined,\n undefined,\n undefined,\n )\n\n this.authorsSearch = this.searchRequest<SearchAuthorsPayload, SearchAuthorsResult>(\n 'Authors',\n 'Szerzők',\n )\n this.authorsDetailsByIds = this.detailsByIdsRequest<AuthorDetails[]>('Authors', 'Szerzők')\n\n this.articleSeriesSearch = this.searchRequest<SearchEntityPayload, SearchArticleSeriesResult>(\n 'ArticleSeries',\n 'Cikk sorozatok',\n )\n this.articleSeriesDetailsByIds = this.detailsByIdsRequest<ArticleSeriesDetails[]>(\n 'ArticleSeries',\n 'Cikk sorozatok',\n )\n\n this.partnersSearch = this.searchRequest<SearchEntityPayload, SearchPartnersResult>(\n 'Partners',\n 'Partnerek',\n )\n this.partnersDetailsByIds = this.detailsByIdsRequest<PartnerDetails[]>('Partners', 'Partnerek')\n\n this.columnsSearch = this.searchRequest<SearchColumnsPayload, SearchColumnsResult>(\n 'Columns',\n 'Rovatok',\n )\n this.columnsDetailsByIds = this.detailsByIdsRequest<ColumnDetails[]>('Columns', 'Rovatok')\n\n this.digitalSupplementsSearch = this.searchRequest<\n SearchDigitalSupplementsPayload,\n SearchDigitalSupplementsResult\n >('DigitalSupplements', 'Digitális kiegészítők')\n this.digitalSupplementsDetailsByIds = this.detailsByIdsRequest<DigitalSupplementDetails[]>(\n 'DigitalSupplements',\n 'Digitális kiegészítők',\n )\n\n this.tagsSearch = this.searchRequest<SearchTagsPayload, SearchTagsResult>('Tags', 'Címkék')\n this.tagsDetailsByIds = this.detailsByIdsRequest<TagDetails[]>('Tags', 'Címkék')\n\n this.getRelationsCount = this.postRequest<GetRelationsCountPayload, RelationCount[]>(\n 'admin/Relations/byIds',\n { ids: [], outputEntityType: '' },\n 'Kapcsolatok számlálása',\n )\n }\n}\n"],"mappings":";;AAgCA,SAAgB,EAAwB,GAAmC;CACzE,OAAO,IAAI,EAAqB,CAAG;AACrC;AAEA,IAAa,IAAb,MAAkC;CAoGb;CAnGnB;CACA;CACA;CACA;CAMA;CAMA;CAMA;CASA;CAEA;CAEA;CAOA;CAEA;CAEA;CAEA;CAOA;CAOA;CAEA;CAEA;CAEA;CAEA;CAEA,SAAiB,GAAoB;EACnC,uBAAO,IAAI,IAAoB,CAC7B,CAAC,KAAK,GAAG,EAAW,kCAAkC,GACtD,CAAC,KAAK,GAAG,EAAW,kCAAkC,CACxD,CAAC;CACH;CAEA,YAAqC,GAAc,GAAyB,GAAoB;EAC9F,OAAO,EACL,IAAI,EAAa,KAAK,SAAS,GAAM,EAAQ,MAAM,KAAK,SAAS,CAAU,CAAC,GAC5E,GACA,KAAA,GACA,KAAA,CACF;CACF;CAEA,cAAuC,GAAkB,GAAoB;EAC3E,OAAO,KAAK,YAA6B,SAAS,EAAS,UAAU,CAAC,GAAc,CAAU;CAChG;CAEA,oBAAoC,GAAkB,GAAoB;EACxE,OAAO,KAAK,YACV,SAAS,EAAS,gBAClB,EAAE,KAAK,CAAC,EAAE,GACV,CACF;CACF;CAEA,YAAY,GAAwC;EA6IlD,AA7IiB,KAAA,0BAAA,GACjB,KAAK,UAAU,KAAK,yBAmBpB,KAAK,cAAc,EACjB,IAAI,EACF,KAAK,SACL,2BACA,EAAQ,MACR,KAAK,SAAS,iBAAiB,CACjC,GACA,CAAC,GACD,KAAA,GACA,KAAA,CACF,GAEA,KAAK,SAAS,EACZ,IAAI,EACF,KAAK,SACL,UACA,EAAQ,KACR,KAAK,SAAS,iCAAiC,CACjD,GACA,KAAA,GACA,KAAA,GACA,KAAA,CACF,GAEA,KAAK,iBAAiB,EAMpB,IAAI,EACF,KAAK,SACL,yBACA,EAAQ,KACR,KAAK,SAAS,2CAA2C,CAC3D,GACA,KAAA,GACA,EAAE,MAAM,GAAG,GACX,KAAA,CACF,GAEA,KAAK,kBAAkB,EAMrB,IAAI,EACF,KAAK,SACL,yBACA,EAAQ,KACR,KAAK,SAAS,8BAA8B,CAC9C,GACA,KAAA,GACA,EAAE,MAAM,GAAG,GACX,KAAA,CACF,GAEA,KAAK,oBAAoB,EAMvB,IAAI,EACF,KAAK,SACL,yBACA,EAAQ,KACR,KAAK,SAAS,8BAA8B,CAC9C,GACA,KAAA,GACA,EAAE,MAAM,GAAG,GACX,KAAA,CACF,GAEA,KAAK,QAAQ,EACX,IAAI,EAAa,KAAK,SAAS,gBAAgB,EAAQ,KAAK,KAAK,SAAS,eAAe,CAAC,GAC1F,KAAA,GACA,KAAA,GACA,KAAA,CACF,GAEA,KAAK,gBAAgB,KAAK,cACxB,WACA,SACF,GACA,KAAK,sBAAsB,KAAK,oBAAqC,WAAW,SAAS,GAEzF,KAAK,sBAAsB,KAAK,cAC9B,iBACA,gBACF,GACA,KAAK,4BAA4B,KAAK,oBACpC,iBACA,gBACF,GAEA,KAAK,iBAAiB,KAAK,cACzB,YACA,WACF,GACA,KAAK,uBAAuB,KAAK,oBAAsC,YAAY,WAAW,GAE9F,KAAK,gBAAgB,KAAK,cACxB,WACA,SACF,GACA,KAAK,sBAAsB,KAAK,oBAAqC,WAAW,SAAS,GAEzF,KAAK,2BAA2B,KAAK,cAGnC,sBAAsB,uBAAuB,GAC/C,KAAK,iCAAiC,KAAK,oBACzC,sBACA,uBACF,GAEA,KAAK,aAAa,KAAK,cAAmD,QAAQ,QAAQ,GAC1F,KAAK,mBAAmB,KAAK,oBAAkC,QAAQ,QAAQ,GAE/E,KAAK,oBAAoB,KAAK,YAC5B,yBACA;GAAE,KAAK,CAAC;GAAG,kBAAkB;EAAG,GAChC,wBACF;CACF;AACF"}
1
+ {"version":3,"file":"admins-components111.js","names":[],"sources":["../src/services/articleEditorService.ts"],"sourcesContent":["import type { SearchPostsPayload, SearchPostsResponse } from '@/models/SearchPosts'\nimport { FetchDetails, type HttpRequest, initRequest, Methods } from '@/services/services'\n\nimport type {\n ArticleSeriesDetails,\n AuthorDetails,\n ColumnDetails,\n DigitalSupplementDetails,\n GetRelationsCountPayload,\n IdsPayload,\n PartnerDetails,\n PresenceWidgetConfig,\n RelationCount,\n SearchArticleSeriesResult,\n SearchAuthorsPayload,\n SearchAuthorsResult,\n SearchColumnsPayload,\n SearchColumnsResult,\n SearchDigitalSupplementsPayload,\n SearchDigitalSupplementsResult,\n SearchEntityPayload,\n SearchImagesWidgetConfig,\n SearchPartnersResult,\n SearchPostWidgetConfig,\n SearchTagsPayload,\n SearchTagsResult,\n Site,\n TagDetails,\n UserInfoModel,\n WidgetDetailsResponse,\n} from '@/services/models'\n\nexport function useArticleEditorService(url: string): ArticleEditorService {\n return new ArticleEditorService(url)\n}\n\nexport class ArticleEditorService {\n baseUrl: string\n searchPosts: HttpRequest<SearchPostsPayload, undefined, undefined, SearchPostsResponse>\n whoAmI: HttpRequest<void, undefined, undefined, UserInfoModel>\n getPostsConfig: HttpRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchPostWidgetConfig>\n >\n getImagesConfig: HttpRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchImagesWidgetConfig>\n >\n getPresenceConfig: HttpRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<PresenceWidgetConfig>\n >\n sites: HttpRequest<undefined, undefined, undefined, Site[]>\n\n getMeta: HttpRequest<\n { url: string },\n undefined,\n undefined,\n { url: string; title: string; lead: string; imageUrl: string }\n >\n\n authorsSearch: HttpRequest<SearchAuthorsPayload, undefined, undefined, SearchAuthorsResult>\n\n authorsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, AuthorDetails[]>\n\n articleSeriesSearch: HttpRequest<\n SearchEntityPayload,\n undefined,\n undefined,\n SearchArticleSeriesResult\n >\n\n articleSeriesDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, ArticleSeriesDetails[]>\n\n columnsSearch: HttpRequest<SearchColumnsPayload, undefined, undefined, SearchColumnsResult>\n\n columnsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, ColumnDetails[]>\n\n digitalSupplementsSearch: HttpRequest<\n SearchDigitalSupplementsPayload,\n undefined,\n undefined,\n SearchDigitalSupplementsResult\n >\n\n digitalSupplementsDetailsByIds: HttpRequest<\n IdsPayload,\n undefined,\n undefined,\n DigitalSupplementDetails[]\n >\n\n partnersSearch: HttpRequest<SearchEntityPayload, undefined, undefined, SearchPartnersResult>\n\n partnersDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, PartnerDetails[]>\n\n tagsSearch: HttpRequest<SearchTagsPayload, undefined, undefined, SearchTagsResult>\n\n tagsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, TagDetails[]>\n\n getRelationsCount: HttpRequest<GetRelationsCountPayload, undefined, undefined, RelationCount[]>\n\n private errorMap(entityName: string) {\n return new Map<number, string>([\n [400, `${entityName} lekérdezése ismeretlen 400 hiba!`],\n [500, `${entityName} lekérdezése ismeretlen 500 hiba!`],\n ])\n }\n\n private postRequest<Payload, Result>(path: string, defaultPayload: Payload, entityName: string) {\n return initRequest<Payload, undefined, undefined, Result>(\n new FetchDetails(this.baseUrl, path, Methods.POST, this.errorMap(entityName)),\n defaultPayload,\n undefined,\n undefined,\n )\n }\n\n private searchRequest<Payload, Result>(resource: string, entityName: string) {\n return this.postRequest<Payload, Result>(`admin/${resource}/search`, {} as Payload, entityName)\n }\n\n private detailsByIdsRequest<Result>(resource: string, entityName: string) {\n return this.postRequest<IdsPayload, Result>(\n `admin/${resource}/detailsByIds`,\n { ids: [] },\n entityName,\n )\n }\n\n constructor(public articleEditorBackendUrl: string) {\n this.baseUrl = this.articleEditorBackendUrl\n\n this.getMeta = initRequest<\n { url: string },\n undefined,\n undefined,\n { url: string; title: string; lead: string; imageUrl: string }\n >(\n new FetchDetails(\n this.baseUrl,\n 'admin/Embeds/meta',\n Methods.POST,\n this.errorMap('Meta adatok'),\n ),\n { url: '' },\n undefined,\n undefined,\n )\n\n this.searchPosts = initRequest<SearchPostsPayload, undefined, undefined, SearchPostsResponse>(\n new FetchDetails(\n this.baseUrl,\n 'admin/Posts/searchPosts',\n Methods.POST,\n this.errorMap('Cikk lekérdezés'),\n ),\n {} as SearchPostsPayload,\n undefined,\n undefined,\n )\n\n this.whoAmI = initRequest<void, undefined, undefined, UserInfoModel>(\n new FetchDetails(\n this.baseUrl,\n 'whoami',\n Methods.GET,\n this.errorMap('Felhasználói adatok lekérdezése'),\n ),\n undefined,\n undefined,\n undefined,\n )\n\n this.getPostsConfig = initRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchPostWidgetConfig>\n >(\n new FetchDetails(\n this.baseUrl,\n '/admin/Widgets/{name}',\n Methods.GET,\n this.errorMap('Search Posts Widget konfiguráció lekérése'),\n ),\n undefined,\n { name: '' } as { name: string },\n undefined,\n )\n\n this.getImagesConfig = initRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchImagesWidgetConfig>\n >(\n new FetchDetails(\n this.baseUrl,\n '/admin/Widgets/{name}',\n Methods.GET,\n this.errorMap('Widget konfiguráció lekérése'),\n ),\n undefined,\n { name: '' } as { name: string },\n undefined,\n )\n\n this.getPresenceConfig = initRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<PresenceWidgetConfig>\n >(\n new FetchDetails(\n this.baseUrl,\n '/admin/Widgets/{name}',\n Methods.GET,\n this.errorMap('Widget konfiguráció lekérése'),\n ),\n undefined,\n { name: '' } as { name: string },\n undefined,\n )\n\n this.sites = initRequest<undefined, undefined, undefined, Site[]>(\n new FetchDetails(this.baseUrl, '/admin/sites', Methods.GET, this.errorMap('Site lekérése')),\n undefined,\n undefined,\n undefined,\n )\n\n this.authorsSearch = this.searchRequest<SearchAuthorsPayload, SearchAuthorsResult>(\n 'Authors',\n 'Szerzők',\n )\n this.authorsDetailsByIds = this.detailsByIdsRequest<AuthorDetails[]>('Authors', 'Szerzők')\n\n this.articleSeriesSearch = this.searchRequest<SearchEntityPayload, SearchArticleSeriesResult>(\n 'ArticleSeries',\n 'Cikk sorozatok',\n )\n this.articleSeriesDetailsByIds = this.detailsByIdsRequest<ArticleSeriesDetails[]>(\n 'ArticleSeries',\n 'Cikk sorozatok',\n )\n\n this.partnersSearch = this.searchRequest<SearchEntityPayload, SearchPartnersResult>(\n 'Partners',\n 'Partnerek',\n )\n this.partnersDetailsByIds = this.detailsByIdsRequest<PartnerDetails[]>('Partners', 'Partnerek')\n\n this.columnsSearch = this.searchRequest<SearchColumnsPayload, SearchColumnsResult>(\n 'Columns',\n 'Rovatok',\n )\n this.columnsDetailsByIds = this.detailsByIdsRequest<ColumnDetails[]>('Columns', 'Rovatok')\n\n this.digitalSupplementsSearch = this.searchRequest<\n SearchDigitalSupplementsPayload,\n SearchDigitalSupplementsResult\n >('DigitalSupplements', 'Digitális kiegészítők')\n this.digitalSupplementsDetailsByIds = this.detailsByIdsRequest<DigitalSupplementDetails[]>(\n 'DigitalSupplements',\n 'Digitális kiegészítők',\n )\n\n this.tagsSearch = this.searchRequest<SearchTagsPayload, SearchTagsResult>('Tags', 'Címkék')\n this.tagsDetailsByIds = this.detailsByIdsRequest<TagDetails[]>('Tags', 'Címkék')\n\n this.getRelationsCount = this.postRequest<GetRelationsCountPayload, RelationCount[]>(\n 'admin/Relations/byIds',\n { ids: [], outputEntityType: '' },\n 'Kapcsolatok számlálása',\n )\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import './vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_56a4bfd6_lang.css';
1
+ import './vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_41b1d56e_lang.css';
2
2
  import e from "./admins-components6.js";
3
3
  import t from "./admins-components40.js";
4
4
  import { defineElement as n } from "./admins-components166.js";
@@ -190,6 +190,6 @@ function W(e, t, n, r, i, a) {
190
190
  fn: b(() => [_(e.$slots, n, { el$: e.el$ }, () => [(m(), o(y(t), { el$: e.el$ }, null, 8, ["el$"]))], !0)])
191
191
  }))]), 1024);
192
192
  }
193
- var G = /*#__PURE__*/ r(x, [["render", W], ["__scopeId", "data-v-56a4bfd6"]]);
193
+ var G = /*#__PURE__*/ r(x, [["render", W], ["__scopeId", "data-v-41b1d56e"]]);
194
194
  //#endregion
195
195
  export { G as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components173.js","names":[],"sources":["../src/vueformelements/ArticlePickerElement.vue"],"sourcesContent":["<!-- eslint-disable-next-line vue/block-lang -->\n<script>\nimport { defineElement } from '@vueform/vueform'\nimport { ref, onUnmounted, onMounted } from 'vue'\nimport { apeConfig } from '@/vueformelements/config/ArticlePickerElementConfig'\nimport { ipeConfig } from '@/vueformelements/config/ImagePickerElementConfig'\nimport Button from '@/components/Button.vue'\nimport Modal from '@/components/Modal.vue'\n\nexport default defineElement({\n components: { Button, Modal },\n name: 'ArticlePickerElement',\n\n setup(props, context) {\n const environment = ipeConfig.environment\n const articleEditorUrl = ipeConfig.articleEditorUrl\n const searchImageWidgetUrl = ipeConfig.searchImageWidgetUrl\n const imageBaseUrl = ipeConfig.imageBaseUrl\n const imageViewId = ipeConfig.imageViewId\n\n const searchArticleApiUrl = apeConfig.searchArticleApiUrl\n const searchArticleWidgetUrl = apeConfig.searchArticleWidgetUrl\n const showIds = apeConfig.showIds\n const articleModalActionsPosition = apeConfig.articleModalActionsPosition ?? 'footer'\n\n const imageCausationId = ref(new Date().getTime().toString() + 'image')\n const articleCausationId = ref(new Date().getTime().toString() + 'article')\n\n const isImageModalOpen = ref(false)\n const isArticleModalOpen = ref(false)\n\n const EMPTYGUID = '00000000-0000-0000-0000-000000000000'\n\n const { value } = context.element\n\n const selectImage = (event) => {\n event.preventDefault()\n isImageModalOpen.value = true\n }\n\n const selectArticle = () => {\n isArticleModalOpen.value = true\n }\n\n const closeImageModal = () => {\n isImageModalOpen.value = false\n }\n\n const closeArticleModal = () => {\n isArticleModalOpen.value = false\n }\n\n const resetImage = (event) => {\n event.preventDefault()\n value.value.imageId = EMPTYGUID\n }\n\n const addScript = (url) => {\n if (!document.querySelector(`script[src=\"${url}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = url\n document.head.appendChild(script)\n }\n }\n\n const getImageUrl = () => {\n return `${imageBaseUrl}/${imageViewId}/${value.value.imageId}.img`\n }\n\n addScript(searchImageWidgetUrl)\n addScript(searchArticleWidgetUrl)\n\n // Image picker posts `image-selected` (custom event from the\n // hvg-search-image widget). Article picker posts\n // `search_posts_selected` from its own `fireSelections`.\n const imageSelectedHandler = (e) => {\n if (e.detail.causationid == imageCausationId.value) {\n isImageModalOpen.value = false\n value.value.imageId = e.detail.image.id\n }\n }\n\n const postSelectedHandler = (e) => {\n if (e.detail.id == articleCausationId.value) {\n if (e.detail.result && e.detail.posts.length > 0) {\n value.value.id = e.detail.posts[0].id\n value.value.siteId = e.detail.posts[0].siteId\n value.value.title = e.detail.posts[0].title\n value.value.lead = e.detail.posts[0].lead\n const imageId = e.detail.posts[0].featuredImage\n value.value.imageId = imageId || EMPTYGUID\n }\n closeArticleModal()\n }\n }\n\n onUnmounted(() => {\n window.removeEventListener('image-selected', imageSelectedHandler, false)\n window.removeEventListener('search_posts_selected', postSelectedHandler, false)\n })\n\n onMounted(() => {\n window.addEventListener('image-selected', imageSelectedHandler)\n window.addEventListener('search_posts_selected', postSelectedHandler)\n })\n\n return {\n imageViewId,\n imageBaseUrl,\n imageCausationId,\n articleCausationId,\n searchImageWidgetUrl,\n environment,\n articleEditorUrl,\n searchArticleApiUrl,\n articleModalActionsPosition,\n selectImage,\n selectArticle,\n closeImageModal,\n closeArticleModal,\n isImageModalOpen,\n isArticleModalOpen,\n resetImage,\n addScript,\n value,\n getImageUrl,\n showIds,\n }\n },\n})\n</script>\n\n<template>\n <ElementLayout>\n <template v-if=\"value\" #element>\n <div class=\"ac-component\">\n <div class=\"article-picker-container\">\n <div class=\"article-picker-section\">\n <Button type=\"normal\" label=\"Cikk Választás\" @click=\"selectArticle\" />\n </div>\n\n <template v-if=\"showIds\">\n <div class=\"article-picker-ids\">\n <div class=\"article-picker-id-field\">\n <label for=\"articleId\" class=\"c-label\">Cikk azonosító</label>\n <div class=\"c-input-row\">\n <input\n type=\"text\"\n id=\"articleId\"\n class=\"c-input\"\n placeholder=\"Cikk azonosító\"\n disabled\n :value=\"value.id\"\n />\n </div>\n </div>\n <div class=\"article-picker-id-field\">\n <label for=\"articleSiteId\" class=\"c-label\">Site azonosító</label>\n <div class=\"c-input-row\">\n <input\n type=\"text\"\n id=\"articleSiteId\"\n class=\"c-input\"\n placeholder=\"Site azonosító\"\n disabled\n :value=\"value.siteId\"\n />\n </div>\n </div>\n </div>\n </template>\n\n <div class=\"article-picker-section\">\n <label for=\"articleTitle\" class=\"c-label\">Címe</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleTitle\"\n class=\"c-input\"\n placeholder=\"Címe\"\n :value=\"value.title\"\n @input=\"value.title = $event.target.value\"\n ></textarea>\n </div>\n </div>\n\n <div class=\"article-picker-section\">\n <label for=\"articleLead\" class=\"c-label\">Lead</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleLead\"\n class=\"c-input\"\n placeholder=\"Lead\"\n :value=\"value.lead\"\n @input=\"value.lead = $event.target.value\"\n ></textarea>\n </div>\n </div>\n\n <div class=\"article-picker-section\">\n <label class=\"c-label\">Kép</label>\n <img\n alt=\"\"\n :src=\"getImageUrl()\"\n @input=\"value.image = $event.target.value\"\n class=\"article-picker-image\"\n />\n </div>\n\n <div\n v-if=\"value.imageId === '00000000-0000-0000-0000-000000000000'\"\n class=\"article-picker-no-image\"\n >\n Nincs kép kiválasztva!\n </div>\n\n <div class=\"article-picker-buttons\">\n <Button type=\"normal\" label=\"Kép Választás\" @click=\"selectImage\" />\n <Button type=\"error\" label=\"Eltávolítás\" @click=\"resetImage\" />\n </div>\n </div>\n\n <Modal\n v-if=\"isImageModalOpen\"\n title=\"Kép választás\"\n modal-class=\"article-picker-image-modal\"\n @close=\"closeImageModal\"\n >\n <hvg-search-image\n :causationid=\"imageCausationId\"\n :viewid=\"imageViewId\"\n :aeurl=\"articleEditorUrl\"\n :environment=\"environment\"\n selectonly=\"true\"\n ></hvg-search-image>\n </Modal>\n\n <!--\n The widget owns its own modal (dialog + header/footer actions)\n when `modal` is set, so no outer Modal wrapper is needed here -\n the widget renders as an opaque custom element and can't expose\n internal refs/slots to an outer Modal component. Selecting \"Kész\"\n fires the `search_posts_selected` window event consumed by\n `postSelectedHandler` above; `close` is emitted for both confirm\n and cancel/backdrop-dismiss.\n -->\n <search-posts-widget\n v-if=\"isArticleModalOpen\"\n :id=\"articleCausationId\"\n selector\n modal\n modal-title=\"Cikk választása\"\n :actions-position=\"articleModalActionsPosition\"\n :apiurl=\"searchArticleApiUrl\"\n wpurl=\"\"\n searchurl=\"\"\n @close=\"closeArticleModal\"\n ></search-posts-widget>\n </div>\n </template>\n\n <template v-for=\"(component, slot) in elementSlots\" #[slot]>\n <!-- eslint-disable-next-line vue/valid-attribute-name -->\n <slot :name=\"slot\" :el$=\"el$\">\n <component :is=\"component\" :el$=\"el$\" />\n </slot>\n </template>\n </ElementLayout>\n</template>\n\n<style scoped>\n.article-picker-container {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.article-picker-section {\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n}\n\n.article-picker-ids {\n display: flex;\n gap: 0.5rem;\n width: 100%;\n}\n\n.article-picker-id-field {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n}\n\n.article-picker-image {\n height: 200px;\n max-width: 100%;\n border-radius: var(--ac-field-border-radius);\n object-fit: cover;\n}\n\n.article-picker-no-image {\n padding: var(--ac-input-padding);\n color: var(--neutral-500);\n font-size: var(--ac-field-font-size);\n}\n\n.article-picker-buttons {\n display: flex;\n gap: 0.5rem;\n width: 100%;\n}\n\n.article-picker-image-modal {\n width: 90vw;\n max-width: 1200px;\n height: 80vh;\n}\n\n.article-picker-image-modal :deep(.c-modal-body) {\n padding: 0;\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"admins-components173.js","names":[],"sources":["../src/vueformelements/ArticlePickerElement.vue"],"sourcesContent":["<!-- eslint-disable-next-line vue/block-lang -->\n<script>\nimport { defineElement } from '@vueform/vueform'\nimport { ref, onUnmounted, onMounted } from 'vue'\nimport { apeConfig } from '@/vueformelements/config/ArticlePickerElementConfig'\nimport { ipeConfig } from '@/vueformelements/config/ImagePickerElementConfig'\nimport Button from '@/components/Button.vue'\nimport Modal from '@/components/Modal.vue'\n\nexport default defineElement({\n components: { Button, Modal },\n name: 'ArticlePickerElement',\n\n setup(props, context) {\n const environment = ipeConfig.environment\n const articleEditorUrl = ipeConfig.articleEditorUrl\n const searchImageWidgetUrl = ipeConfig.searchImageWidgetUrl\n const imageBaseUrl = ipeConfig.imageBaseUrl\n const imageViewId = ipeConfig.imageViewId\n\n const searchArticleApiUrl = apeConfig.searchArticleApiUrl\n const searchArticleWidgetUrl = apeConfig.searchArticleWidgetUrl\n const showIds = apeConfig.showIds\n const articleModalActionsPosition = apeConfig.articleModalActionsPosition ?? 'footer'\n\n const imageCausationId = ref(new Date().getTime().toString() + 'image')\n const articleCausationId = ref(new Date().getTime().toString() + 'article')\n\n const isImageModalOpen = ref(false)\n const isArticleModalOpen = ref(false)\n\n const EMPTYGUID = '00000000-0000-0000-0000-000000000000'\n\n const { value } = context.element\n\n const selectImage = (event) => {\n event.preventDefault()\n isImageModalOpen.value = true\n }\n\n const selectArticle = () => {\n isArticleModalOpen.value = true\n }\n\n const closeImageModal = () => {\n isImageModalOpen.value = false\n }\n\n const closeArticleModal = () => {\n isArticleModalOpen.value = false\n }\n\n const resetImage = (event) => {\n event.preventDefault()\n value.value.imageId = EMPTYGUID\n }\n\n const addScript = (url) => {\n if (!document.querySelector(`script[src=\"${url}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = url\n document.head.appendChild(script)\n }\n }\n\n const getImageUrl = () => {\n return `${imageBaseUrl}/${imageViewId}/${value.value.imageId}.img`\n }\n\n addScript(searchImageWidgetUrl)\n addScript(searchArticleWidgetUrl)\n\n // Image picker posts `image-selected` (custom event from the\n // hvg-search-image widget). Article picker posts\n // `search_posts_selected` from its own `fireSelections`.\n const imageSelectedHandler = (e) => {\n if (e.detail.causationid == imageCausationId.value) {\n isImageModalOpen.value = false\n value.value.imageId = e.detail.image.id\n }\n }\n\n const postSelectedHandler = (e) => {\n if (e.detail.id == articleCausationId.value) {\n if (e.detail.result && e.detail.posts.length > 0) {\n value.value.id = e.detail.posts[0].id\n value.value.siteId = e.detail.posts[0].siteId\n value.value.title = e.detail.posts[0].title\n value.value.lead = e.detail.posts[0].lead\n const imageId = e.detail.posts[0].featuredImage\n value.value.imageId = imageId || EMPTYGUID\n }\n closeArticleModal()\n }\n }\n\n onUnmounted(() => {\n window.removeEventListener('image-selected', imageSelectedHandler, false)\n window.removeEventListener('search_posts_selected', postSelectedHandler, false)\n })\n\n onMounted(() => {\n window.addEventListener('image-selected', imageSelectedHandler)\n window.addEventListener('search_posts_selected', postSelectedHandler)\n })\n\n return {\n imageViewId,\n imageBaseUrl,\n imageCausationId,\n articleCausationId,\n searchImageWidgetUrl,\n environment,\n articleEditorUrl,\n searchArticleApiUrl,\n articleModalActionsPosition,\n selectImage,\n selectArticle,\n closeImageModal,\n closeArticleModal,\n isImageModalOpen,\n isArticleModalOpen,\n resetImage,\n addScript,\n value,\n getImageUrl,\n showIds,\n }\n },\n})\n</script>\n\n<template>\n <ElementLayout>\n <template v-if=\"value\" #element>\n <div class=\"ac-component\">\n <div class=\"article-picker-container\">\n <div class=\"article-picker-section\">\n <Button type=\"normal\" label=\"Cikk Választás\" @click=\"selectArticle\" />\n </div>\n\n <template v-if=\"showIds\">\n <div class=\"article-picker-ids\">\n <div class=\"article-picker-id-field\">\n <label for=\"articleId\" class=\"c-label\">Cikk azonosító</label>\n <div class=\"c-input-row\">\n <input\n type=\"text\"\n id=\"articleId\"\n class=\"c-input\"\n placeholder=\"Cikk azonosító\"\n disabled\n :value=\"value.id\"\n />\n </div>\n </div>\n <div class=\"article-picker-id-field\">\n <label for=\"articleSiteId\" class=\"c-label\">Site azonosító</label>\n <div class=\"c-input-row\">\n <input\n type=\"text\"\n id=\"articleSiteId\"\n class=\"c-input\"\n placeholder=\"Site azonosító\"\n disabled\n :value=\"value.siteId\"\n />\n </div>\n </div>\n </div>\n </template>\n\n <div class=\"article-picker-section\">\n <label for=\"articleTitle\" class=\"c-label\">Címe</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleTitle\"\n class=\"c-input\"\n placeholder=\"Címe\"\n :value=\"value.title\"\n @input=\"value.title = $event.target.value\"\n ></textarea>\n </div>\n </div>\n\n <div class=\"article-picker-section\">\n <label for=\"articleLead\" class=\"c-label\">Lead</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleLead\"\n class=\"c-input\"\n placeholder=\"Lead\"\n :value=\"value.lead\"\n @input=\"value.lead = $event.target.value\"\n ></textarea>\n </div>\n </div>\n\n <div class=\"article-picker-section\">\n <label class=\"c-label\">Kép</label>\n <img\n alt=\"\"\n :src=\"getImageUrl()\"\n @input=\"value.image = $event.target.value\"\n class=\"article-picker-image\"\n />\n </div>\n\n <div\n v-if=\"value.imageId === '00000000-0000-0000-0000-000000000000'\"\n class=\"article-picker-no-image\"\n >\n Nincs kép kiválasztva!\n </div>\n\n <div class=\"article-picker-buttons\">\n <Button type=\"normal\" label=\"Kép Választás\" @click=\"selectImage\" />\n <Button type=\"error\" label=\"Eltávolítás\" @click=\"resetImage\" />\n </div>\n </div>\n\n <Modal\n v-if=\"isImageModalOpen\"\n title=\"Kép választás\"\n modal-class=\"article-picker-image-modal\"\n @close=\"closeImageModal\"\n >\n <hvg-search-image\n :causationid=\"imageCausationId\"\n :viewid=\"imageViewId\"\n :aeurl=\"articleEditorUrl\"\n :environment=\"environment\"\n selectonly=\"true\"\n ></hvg-search-image>\n </Modal>\n\n <!--\n The widget owns its own modal (dialog + header/footer actions)\n when `modal` is set, so no outer Modal wrapper is needed here -\n the widget renders as an opaque custom element and can't expose\n internal refs/slots to an outer Modal component. Selecting \"Kész\"\n fires the `search_posts_selected` window event consumed by\n `postSelectedHandler` above; `close` is emitted for both confirm\n and cancel/backdrop-dismiss.\n -->\n <search-posts-widget\n v-if=\"isArticleModalOpen\"\n :id=\"articleCausationId\"\n selector\n modal\n modal-title=\"Cikk választása\"\n :actions-position=\"articleModalActionsPosition\"\n :apiurl=\"searchArticleApiUrl\"\n wpurl=\"\"\n searchurl=\"\"\n @close=\"closeArticleModal\"\n ></search-posts-widget>\n </div>\n </template>\n\n <template v-for=\"(component, slot) in elementSlots\" #[slot]>\n <!-- eslint-disable-next-line vue/valid-attribute-name -->\n <slot :name=\"slot\" :el$=\"el$\">\n <component :is=\"component\" :el$=\"el$\" />\n </slot>\n </template>\n </ElementLayout>\n</template>\n\n<style scoped>\n.article-picker-container {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.article-picker-section {\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n}\n\n.article-picker-ids {\n display: flex;\n gap: 0.5rem;\n width: 100%;\n}\n\n.article-picker-id-field {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n}\n\n.article-picker-image {\n height: 200px;\n max-width: 100%;\n border-radius: var(--ac-field-border-radius);\n object-fit: cover;\n}\n\n.article-picker-no-image {\n padding: var(--ac-input-padding);\n color: var(--ac-c-neutral-500);\n font-size: var(--ac-field-font-size);\n}\n\n.article-picker-buttons {\n display: flex;\n gap: 0.5rem;\n width: 100%;\n}\n\n.article-picker-image-modal {\n width: 90vw;\n max-width: 1200px;\n height: 80vh;\n}\n\n.article-picker-image-modal :deep(.c-modal-body) {\n padding: 0;\n}\n</style>\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ var i = /*@__PURE__*/ t({
8
8
  default: !0
9
9
  },
10
10
  size: { default: "2rem" },
11
- color: { default: "var(--site-500)" }
11
+ color: { default: "var(--ac-c-site-500)" }
12
12
  },
13
13
  setup(t) {
14
14
  return (i, a) => (r(), e("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components23.js","names":[],"sources":["../src/components/Loader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n loading?: boolean\n size?: string\n color?: string\n }>(),\n {\n loading: true,\n size: '2rem',\n color: 'var(--site-500)',\n },\n)\n</script>\n<template>\n <div\n class=\"loader\"\n :style=\"{\n width: size,\n '--loader-thickness': `calc(${size} / 6)`,\n '--loader-color': color,\n }\"\n ></div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/loader.scss\"></style>\n"],"mappings":";;;;;;;;;;;;;oBAeE,EAAA,GAAA,EAOO,OAAA;GANL,OAAM;GACL,OAAK,EAAA;IAAiB,OAAA,EAAA;IAA0C,sBAAA,QAAA,EAAA,KAAI;IAAiC,kBAAA,EAAA"}
1
+ {"version":3,"file":"admins-components23.js","names":[],"sources":["../src/components/Loader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n loading?: boolean\n size?: string\n color?: string\n }>(),\n {\n loading: true,\n size: '2rem',\n color: 'var(--ac-c-site-500)',\n },\n)\n</script>\n<template>\n <div\n class=\"loader\"\n :style=\"{\n width: size,\n '--loader-thickness': `calc(${size} / 6)`,\n '--loader-color': color,\n }\"\n ></div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/loader.scss\"></style>\n"],"mappings":";;;;;;;;;;;;;oBAeE,EAAA,GAAA,EAOO,OAAA;GANL,OAAM;GACL,OAAK,EAAA;IAAiB,OAAA,EAAA;IAA0C,sBAAA,QAAA,EAAA,KAAI;IAAiC,kBAAA,EAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components25.js","names":[],"sources":["../src/components/Loader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n loading?: boolean\n size?: string\n color?: string\n }>(),\n {\n loading: true,\n size: '2rem',\n color: 'var(--site-500)',\n },\n)\n</script>\n<template>\n <div\n class=\"loader\"\n :style=\"{\n width: size,\n '--loader-thickness': `calc(${size} / 6)`,\n '--loader-color': color,\n }\"\n ></div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/loader.scss\"></style>\n"],"mappings":""}
1
+ {"version":3,"file":"admins-components25.js","names":[],"sources":["../src/components/Loader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n loading?: boolean\n size?: string\n color?: string\n }>(),\n {\n loading: true,\n size: '2rem',\n color: 'var(--ac-c-site-500)',\n },\n)\n</script>\n<template>\n <div\n class=\"loader\"\n :style=\"{\n width: size,\n '--loader-thickness': `calc(${size} / 6)`,\n '--loader-color': color,\n }\"\n ></div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/loader.scss\"></style>\n"],"mappings":""}
@@ -205,7 +205,7 @@ var b = { class: "ac-component" }, x = ["aria-disabled"], ne = {
205
205
  ])) : s("", !0),
206
206
  l("ul", w, [M.value.loading ? (m(), c("li", oe, [u(n, {
207
207
  size: "2rem",
208
- color: "var(--neutral-300)",
208
+ color: "var(--ac-c-neutral-300)",
209
209
  class: "m-auto p-3"
210
210
  })])) : (m(), c(r, { key: 1 }, [(m(!0), c(r, null, te(K.value, (e, t) => (m(), c("li", {
211
211
  key: e.value ?? `cb-${t}`,
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components26.js","names":[],"sources":["../src/components/DropdownSelect.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface DropdownSelectConfig {\n placeholder?: string\n filterable?: boolean\n filterPlaceholder?: string\n clearable?: boolean\n textEllipsis?: boolean\n multiple?: boolean\n lazy?: boolean\n size?: ControlSize\n loading?: boolean\n highlight?: boolean\n disabled?: boolean\n}\n\nexport const dropdownSelectConfigDefaults: DropdownSelectConfig = {\n placeholder: 'Válassz...',\n filterable: true,\n filterPlaceholder: 'Kezdj el gépelni...',\n clearable: true,\n textEllipsis: true,\n multiple: false,\n lazy: false,\n loading: false,\n size: 'normal' as ControlSize,\n highlight: true,\n disabled: false,\n}\n\nexport interface DropdownOption {\n icon?: string\n value?: string\n label: string\n callback?: () => void\n}\n\nexport interface DropdownSelectProps {\n modelValue?: DropdownOption | DropdownOption[] | string | string[] | null\n options: DropdownOption[]\n config?: DropdownSelectConfig\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, nextTick } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { ControlSize } from '@/types/types'\nimport Loader from '@/components/Loader.vue'\nimport { useDropdownAnchor } from '@/composables/useDropdownAnchor'\n\nconst props = withDefaults(defineProps<DropdownSelectProps>(), {\n modelValue: null,\n config: () => ({ ...dropdownSelectConfigDefaults }),\n})\n\nconst cfg = computed(() => ({ ...dropdownSelectConfigDefaults, ...props.config }))\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: DropdownOption | DropdownOption[] | null]\n 'filter-input': [filterText: string]\n}>()\n\nconst filterText = ref('')\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst dropdownRef = ref<HTMLElement | null>(null)\nconst filterInputRef = ref<HTMLInputElement | null>(null)\nconst buffer = ref<DropdownOption[]>([])\nconst selection = ref<DropdownOption[]>(normalizeToOptions(props.modelValue, props.options))\n\nconst { isOpen, dropdownStyle, placement } = useDropdownAnchor(wrapperRef, dropdownRef, {\n extraStyle: (rect) => ({\n minWidth: `${rect.width}px`,\n maxWidth: `${rect.width}px`,\n }),\n maxHeight: '20rem',\n})\n\n\nfunction normalizeToOptions(\n val: DropdownOption | DropdownOption[] | string | string[] | null | undefined,\n options: DropdownOption[],\n): DropdownOption[] {\n if (val == null) return []\n const arr = Array.isArray(val) ? val : [val]\n return arr\n .map((entry): DropdownOption | null => {\n if (entry == null) return null\n if (typeof entry === 'object' && 'label' in entry) {\n return entry as DropdownOption\n }\n if (typeof entry === 'string') {\n const found = options.find((o) => o.value === entry)\n return found ?? { value: entry, label: entry }\n }\n return null\n })\n .filter((o): o is DropdownOption => o !== null)\n}\n\nwatch(\n () => [props.modelValue, props.options],\n ([v]) => {\n selection.value = normalizeToOptions(v as typeof props.modelValue, props.options)\n },\n)\n\nwatch(isOpen, (open) => {\n if (open) {\n filterText.value = ''\n if (cfg.value.filterable) nextTick(() => filterInputRef.value?.focus())\n if (cfg.value.lazy) buffer.value = [...selection.value]\n }\n})\n\nfunction onFilterInput(text: string) {\n filterText.value = text\n emit('filter-input', text)\n}\n\nconst selectedLabel = computed(() => {\n if (selection.value.length === 0) return null\n if (!cfg.value.multiple) {\n const sel = selection.value[0]\n\n return props.options.find((o) => o.value === sel?.value)?.label ?? sel?.label ?? null\n }\n if (selection.value.length > 2) return `${selection.value.length} kiválasztva`\n return selection.value\n .map((sel) => props.options.find((o) => o.value === sel.value)?.label ?? sel.label ?? sel.value)\n .join(', ')\n})\n\nconst filteredOptions = computed(() => {\n const q = filterText.value.toLowerCase()\n return q ? props.options.filter((o) => o.label.toLowerCase().includes(q)) : props.options\n})\n\nfunction escapeHtml(str: string) {\n return str.replace(\n /[&<>\"']/g,\n (m) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' })[m]!,\n )\n}\n\nfunction highlight(label: string) {\n const q = filterText.value.trim()\n if (!q || !cfg.value.highlight) return escapeHtml(label)\n\n const safeLabel = escapeHtml(label)\n const safeQ = escapeHtml(q)\n\n const re = new RegExp(safeQ.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'ig')\n return safeLabel.replace(re, (m) => `<mark class=\"ds-option__highlight\">${m}</mark>`)\n}\n\nconst selectableOptions = computed(() => {\n return filteredOptions.value.filter((o) => o.value)\n})\n\nconst allOptionsSelected = computed(() => {\n if (selectableOptions.value.length === 0) return false\n const currentList = cfg.value.lazy && isOpen.value ? buffer.value : selection.value\n return selectableOptions.value.every((o) => o.value && currentList.some((s) => s.value === o.value))\n})\n\nfunction isSelected(value: string): boolean {\n const list = cfg.value.lazy && isOpen.value ? buffer : selection\n return list.value.some((s) => s.value === value)\n}\n\nfunction toggleAllOptions() {\n const currentList = cfg.value.lazy && isOpen.value ? buffer : selection\n const selectableOpts = selectableOptions.value.filter((o) => o.value)\n\n if (allOptionsSelected.value) {\n const selectableValues = new Set(selectableOpts.map((o) => o.value as string))\n currentList.value = currentList.value.filter((s) => !selectableValues.has(s.value ?? ''))\n } else {\n const existingValues = new Set(currentList.value.map((s) => s.value))\n const toAdd = selectableOpts.filter((o) => !existingValues.has(o.value as string))\n currentList.value = [...currentList.value, ...toAdd]\n }\n\n if (!cfg.value.lazy) {\n emit('update:modelValue', selection.value.length > 0 ? [...selection.value] : null)\n }\n}\n\nfunction toggleList(list: DropdownOption[], opt: DropdownOption): DropdownOption[] {\n const idx = list.findIndex((s) => s.value === opt.value)\n return idx >= 0 ? list.filter((_, i) => i !== idx) : [...list, opt]\n}\n\nfunction selectOption(opt: DropdownOption) {\n if (opt.callback) {\n opt.callback()\n isOpen.value = false\n return\n }\n\n const value = opt.value\n if (!value) return\n\n if (cfg.value.multiple) {\n if (cfg.value.lazy) {\n buffer.value = toggleList(buffer.value, opt)\n } else {\n selection.value = toggleList(selection.value, opt)\n emit('update:modelValue', selection.value.length > 0 ? [...selection.value] : null)\n }\n } else {\n selection.value = [opt]\n emit('update:modelValue', opt)\n isOpen.value = false\n }\n}\n\nfunction confirm() {\n if (cfg.value.lazy) {\n selection.value = [...buffer.value]\n emit('update:modelValue', buffer.value.length > 0 ? [...buffer.value] : null)\n }\n isOpen.value = false\n}\n\nfunction clear() {\n if (cfg.value.lazy) {\n buffer.value = []\n } else {\n selection.value = []\n emit('update:modelValue', null)\n }\n}\n\nfunction onOptionKeydown(e: KeyboardEvent, opt: DropdownOption) {\n if (e.key === ' ') {\n e.preventDefault()\n selectOption(opt)\n } else if (e.key === 'Enter') {\n e.preventDefault()\n confirm()\n }\n}\n\nfunction toggleOpen() {\n if (cfg.value.disabled) return\n isOpen.value = !isOpen.value\n if (isOpen.value) {\n if (cfg.value.filterable) {\n filterText.value = ''\n emit('filter-input', '')\n }\n }\n}\n\nfunction clearInput() {\n if (cfg.value.disabled) return\n selection.value = []\n emit('update:modelValue', null)\n isOpen.value = false\n}\n\nfunction focusAndOpen() {\n if (cfg.value.disabled) return\n isOpen.value = true\n if (cfg.value.filterable) nextTick(() => filterInputRef.value?.focus())\n}\n\nfunction handleFilterClear() {\n filterText.value = ''\n emit('filter-input', '')\n}\n\ndefineExpose({ focusAndOpen })\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"wrapperRef\" class=\"c-wrapper ds-wrapper\">\n <div\n class=\"c-input-row pointer\"\n :class=\"{\n 'c-input-row--sm': cfg.size === 'small',\n 'c-input-row--lg': cfg.size === 'large',\n 'c-input-row--disabled': cfg.disabled,\n 'c-input-row--open': isOpen,\n }\"\n :aria-disabled=\"cfg.disabled || undefined\"\n @click=\"toggleOpen()\"\n >\n <span v-if=\"selectedLabel\" class=\"c-truncate ds-value\">{{ selectedLabel }}</span>\n <span v-else class=\"c-placeholder\">{{ cfg.placeholder }}</span>\n <button\n v-if=\"cfg.clearable && selection.length > 0\"\n type=\"button\"\n class=\"c-icon-btn c-icon-btn--clear ds-clear-btn\"\n @click.stop=\"clearInput()\"\n aria-label=\"Törlés\"\n >\n <i class=\"fa-solid fa-fw fa-xmark\"></i>\n </button>\n <span\n class=\"c-icon-btn c-icon-btn--chevron mr-2\"\n :class=\"{ 'c-icon-btn--chevron-open': isOpen }\"\n >\n <i class=\"fa-solid fa-fw fa-chevron-down\"></i>\n </span>\n </div>\n </div>\n <Teleport to=\"body\">\n <div class=\"ac-component\">\n <div\n v-if=\"isOpen\"\n ref=\"dropdownRef\"\n class=\"c-dropdown ds-dropdown ds-wrapper\"\n :class=\"{ 'ds-dropdown--multiple': cfg.multiple, 'ds-dropdown--up': placement === 'up' }\"\n :style=\"dropdownStyle\"\n >\n <div v-if=\"cfg.filterable\" class=\"ds-filter\">\n <span\n v-if=\"cfg.multiple\"\n class=\"c-checkbox ds-select-all-checkbox\"\n :class=\"{ 'c-checkbox--checked': allOptionsSelected }\"\n @click.stop=\"toggleAllOptions()\"\n :title=\"allOptionsSelected ? 'Összes kijelölés törlése' : 'Összes kijelölése'\"\n ></span>\n <input\n ref=\"filterInputRef\"\n type=\"text\"\n id=\"ds-filter-input\"\n class=\"c-focus ds-filter-input\"\n :value=\"filterText\"\n @input=\"onFilterInput(($event.target as HTMLInputElement).value)\"\n autocomplete=\"off\"\n :placeholder=\"cfg.filterPlaceholder\"\n @click.stop\n />\n <button\n v-if=\"filterText\"\n type=\"button\"\n class=\"c-icon-btn c-icon-btn--clear ds-filter-clear\"\n @click.stop=\"handleFilterClear()\"\n aria-label=\"Szűrők törlése\"\n >\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <ul class=\"ds-options c-scroll\">\n <li v-if=\"cfg.loading\" class=\"ds-option ds-option--loading\">\n <Loader size=\"2rem\" color=\"var(--neutral-300)\" class=\"m-auto p-3\" />\n </li>\n <template v-else>\n <li\n v-for=\"(opt, idx) in filteredOptions\"\n :key=\"opt.value ?? `cb-${idx}`\"\n class=\"d-option ds-option\"\n :class=\"{ 'ds-option--selected': opt.value && isSelected(opt.value) }\"\n tabindex=\"0\"\n @click=\"selectOption(opt)\"\n @keydown=\"onOptionKeydown($event, opt)\"\n >\n <span\n v-if=\"cfg.multiple && opt.value\"\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': isSelected(opt.value) }\"\n ></span>\n <i v-if=\"opt.icon\" class=\"fa-fw\" :class=\"opt.icon\"></i>\n <span\n class=\"d-option__label\"\n :class=\"{ 'c-truncate': cfg.textEllipsis }\"\n v-html=\"highlight(opt.label)\"\n ></span>\n </li>\n <li v-if=\"filteredOptions.length === 0\" class=\"ds-option ds-option--empty\">\n Nincs találat\n </li>\n </template>\n </ul>\n <div v-if=\"cfg.multiple\" class=\"c-footer\">\n <Button v-if=\"cfg.clearable && selection.length > 0\" label=\"Törlés\" outline @click=\"clear\" />\n <Button label=\"OK\" type=\"success\" @click=\"confirm\" />\n </div>\n </div>\n </div>\n </Teleport>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/dropdown-select.scss\"></style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"admins-components26.js","names":[],"sources":["../src/components/DropdownSelect.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface DropdownSelectConfig {\n placeholder?: string\n filterable?: boolean\n filterPlaceholder?: string\n clearable?: boolean\n textEllipsis?: boolean\n multiple?: boolean\n lazy?: boolean\n size?: ControlSize\n loading?: boolean\n highlight?: boolean\n disabled?: boolean\n}\n\nexport const dropdownSelectConfigDefaults: DropdownSelectConfig = {\n placeholder: 'Válassz...',\n filterable: true,\n filterPlaceholder: 'Kezdj el gépelni...',\n clearable: true,\n textEllipsis: true,\n multiple: false,\n lazy: false,\n loading: false,\n size: 'normal' as ControlSize,\n highlight: true,\n disabled: false,\n}\n\nexport interface DropdownOption {\n icon?: string\n value?: string\n label: string\n callback?: () => void\n}\n\nexport interface DropdownSelectProps {\n modelValue?: DropdownOption | DropdownOption[] | string | string[] | null\n options: DropdownOption[]\n config?: DropdownSelectConfig\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, nextTick } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { ControlSize } from '@/types/types'\nimport Loader from '@/components/Loader.vue'\nimport { useDropdownAnchor } from '@/composables/useDropdownAnchor'\n\nconst props = withDefaults(defineProps<DropdownSelectProps>(), {\n modelValue: null,\n config: () => ({ ...dropdownSelectConfigDefaults }),\n})\n\nconst cfg = computed(() => ({ ...dropdownSelectConfigDefaults, ...props.config }))\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: DropdownOption | DropdownOption[] | null]\n 'filter-input': [filterText: string]\n}>()\n\nconst filterText = ref('')\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst dropdownRef = ref<HTMLElement | null>(null)\nconst filterInputRef = ref<HTMLInputElement | null>(null)\nconst buffer = ref<DropdownOption[]>([])\nconst selection = ref<DropdownOption[]>(normalizeToOptions(props.modelValue, props.options))\n\nconst { isOpen, dropdownStyle, placement } = useDropdownAnchor(wrapperRef, dropdownRef, {\n extraStyle: (rect) => ({\n minWidth: `${rect.width}px`,\n maxWidth: `${rect.width}px`,\n }),\n maxHeight: '20rem',\n})\n\nfunction normalizeToOptions(\n val: DropdownOption | DropdownOption[] | string | string[] | null | undefined,\n options: DropdownOption[],\n): DropdownOption[] {\n if (val == null) return []\n const arr = Array.isArray(val) ? val : [val]\n return arr\n .map((entry): DropdownOption | null => {\n if (entry == null) return null\n if (typeof entry === 'object' && 'label' in entry) {\n return entry as DropdownOption\n }\n if (typeof entry === 'string') {\n const found = options.find((o) => o.value === entry)\n return found ?? { value: entry, label: entry }\n }\n return null\n })\n .filter((o): o is DropdownOption => o !== null)\n}\n\nwatch(\n () => [props.modelValue, props.options],\n ([v]) => {\n selection.value = normalizeToOptions(v as typeof props.modelValue, props.options)\n },\n)\n\nwatch(isOpen, (open) => {\n if (open) {\n filterText.value = ''\n if (cfg.value.filterable) nextTick(() => filterInputRef.value?.focus())\n if (cfg.value.lazy) buffer.value = [...selection.value]\n }\n})\n\nfunction onFilterInput(text: string) {\n filterText.value = text\n emit('filter-input', text)\n}\n\nconst selectedLabel = computed(() => {\n if (selection.value.length === 0) return null\n if (!cfg.value.multiple) {\n const sel = selection.value[0]\n\n return props.options.find((o) => o.value === sel?.value)?.label ?? sel?.label ?? null\n }\n if (selection.value.length > 2) return `${selection.value.length} kiválasztva`\n return selection.value\n .map((sel) => props.options.find((o) => o.value === sel.value)?.label ?? sel.label ?? sel.value)\n .join(', ')\n})\n\nconst filteredOptions = computed(() => {\n const q = filterText.value.toLowerCase()\n return q ? props.options.filter((o) => o.label.toLowerCase().includes(q)) : props.options\n})\n\nfunction escapeHtml(str: string) {\n return str.replace(\n /[&<>\"']/g,\n (m) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' })[m]!,\n )\n}\n\nfunction highlight(label: string) {\n const q = filterText.value.trim()\n if (!q || !cfg.value.highlight) return escapeHtml(label)\n\n const safeLabel = escapeHtml(label)\n const safeQ = escapeHtml(q)\n\n const re = new RegExp(safeQ.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'ig')\n return safeLabel.replace(re, (m) => `<mark class=\"ds-option__highlight\">${m}</mark>`)\n}\n\nconst selectableOptions = computed(() => {\n return filteredOptions.value.filter((o) => o.value)\n})\n\nconst allOptionsSelected = computed(() => {\n if (selectableOptions.value.length === 0) return false\n const currentList = cfg.value.lazy && isOpen.value ? buffer.value : selection.value\n return selectableOptions.value.every(\n (o) => o.value && currentList.some((s) => s.value === o.value),\n )\n})\n\nfunction isSelected(value: string): boolean {\n const list = cfg.value.lazy && isOpen.value ? buffer : selection\n return list.value.some((s) => s.value === value)\n}\n\nfunction toggleAllOptions() {\n const currentList = cfg.value.lazy && isOpen.value ? buffer : selection\n const selectableOpts = selectableOptions.value.filter((o) => o.value)\n\n if (allOptionsSelected.value) {\n const selectableValues = new Set(selectableOpts.map((o) => o.value as string))\n currentList.value = currentList.value.filter((s) => !selectableValues.has(s.value ?? ''))\n } else {\n const existingValues = new Set(currentList.value.map((s) => s.value))\n const toAdd = selectableOpts.filter((o) => !existingValues.has(o.value as string))\n currentList.value = [...currentList.value, ...toAdd]\n }\n\n if (!cfg.value.lazy) {\n emit('update:modelValue', selection.value.length > 0 ? [...selection.value] : null)\n }\n}\n\nfunction toggleList(list: DropdownOption[], opt: DropdownOption): DropdownOption[] {\n const idx = list.findIndex((s) => s.value === opt.value)\n return idx >= 0 ? list.filter((_, i) => i !== idx) : [...list, opt]\n}\n\nfunction selectOption(opt: DropdownOption) {\n if (opt.callback) {\n opt.callback()\n isOpen.value = false\n return\n }\n\n const value = opt.value\n if (!value) return\n\n if (cfg.value.multiple) {\n if (cfg.value.lazy) {\n buffer.value = toggleList(buffer.value, opt)\n } else {\n selection.value = toggleList(selection.value, opt)\n emit('update:modelValue', selection.value.length > 0 ? [...selection.value] : null)\n }\n } else {\n selection.value = [opt]\n emit('update:modelValue', opt)\n isOpen.value = false\n }\n}\n\nfunction confirm() {\n if (cfg.value.lazy) {\n selection.value = [...buffer.value]\n emit('update:modelValue', buffer.value.length > 0 ? [...buffer.value] : null)\n }\n isOpen.value = false\n}\n\nfunction clear() {\n if (cfg.value.lazy) {\n buffer.value = []\n } else {\n selection.value = []\n emit('update:modelValue', null)\n }\n}\n\nfunction onOptionKeydown(e: KeyboardEvent, opt: DropdownOption) {\n if (e.key === ' ') {\n e.preventDefault()\n selectOption(opt)\n } else if (e.key === 'Enter') {\n e.preventDefault()\n confirm()\n }\n}\n\nfunction toggleOpen() {\n if (cfg.value.disabled) return\n isOpen.value = !isOpen.value\n if (isOpen.value) {\n if (cfg.value.filterable) {\n filterText.value = ''\n emit('filter-input', '')\n }\n }\n}\n\nfunction clearInput() {\n if (cfg.value.disabled) return\n selection.value = []\n emit('update:modelValue', null)\n isOpen.value = false\n}\n\nfunction focusAndOpen() {\n if (cfg.value.disabled) return\n isOpen.value = true\n if (cfg.value.filterable) nextTick(() => filterInputRef.value?.focus())\n}\n\nfunction handleFilterClear() {\n filterText.value = ''\n emit('filter-input', '')\n}\n\ndefineExpose({ focusAndOpen })\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"wrapperRef\" class=\"c-wrapper ds-wrapper\">\n <div\n class=\"c-input-row pointer\"\n :class=\"{\n 'c-input-row--sm': cfg.size === 'small',\n 'c-input-row--lg': cfg.size === 'large',\n 'c-input-row--disabled': cfg.disabled,\n 'c-input-row--open': isOpen,\n }\"\n :aria-disabled=\"cfg.disabled || undefined\"\n @click=\"toggleOpen()\"\n >\n <span v-if=\"selectedLabel\" class=\"c-truncate ds-value\">{{ selectedLabel }}</span>\n <span v-else class=\"c-placeholder\">{{ cfg.placeholder }}</span>\n <button\n v-if=\"cfg.clearable && selection.length > 0\"\n type=\"button\"\n class=\"c-icon-btn c-icon-btn--clear ds-clear-btn\"\n @click.stop=\"clearInput()\"\n aria-label=\"Törlés\"\n >\n <i class=\"fa-solid fa-fw fa-xmark\"></i>\n </button>\n <span\n class=\"c-icon-btn c-icon-btn--chevron mr-2\"\n :class=\"{ 'c-icon-btn--chevron-open': isOpen }\"\n >\n <i class=\"fa-solid fa-fw fa-chevron-down\"></i>\n </span>\n </div>\n </div>\n <Teleport to=\"body\">\n <div class=\"ac-component\">\n <div\n v-if=\"isOpen\"\n ref=\"dropdownRef\"\n class=\"c-dropdown ds-dropdown ds-wrapper\"\n :class=\"{ 'ds-dropdown--multiple': cfg.multiple, 'ds-dropdown--up': placement === 'up' }\"\n :style=\"dropdownStyle\"\n >\n <div v-if=\"cfg.filterable\" class=\"ds-filter\">\n <span\n v-if=\"cfg.multiple\"\n class=\"c-checkbox ds-select-all-checkbox\"\n :class=\"{ 'c-checkbox--checked': allOptionsSelected }\"\n @click.stop=\"toggleAllOptions()\"\n :title=\"allOptionsSelected ? 'Összes kijelölés törlése' : 'Összes kijelölése'\"\n ></span>\n <input\n ref=\"filterInputRef\"\n type=\"text\"\n id=\"ds-filter-input\"\n class=\"c-focus ds-filter-input\"\n :value=\"filterText\"\n @input=\"onFilterInput(($event.target as HTMLInputElement).value)\"\n autocomplete=\"off\"\n :placeholder=\"cfg.filterPlaceholder\"\n @click.stop\n />\n <button\n v-if=\"filterText\"\n type=\"button\"\n class=\"c-icon-btn c-icon-btn--clear ds-filter-clear\"\n @click.stop=\"handleFilterClear()\"\n aria-label=\"Szűrők törlése\"\n >\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <ul class=\"ds-options c-scroll\">\n <li v-if=\"cfg.loading\" class=\"ds-option ds-option--loading\">\n <Loader size=\"2rem\" color=\"var(--ac-c-neutral-300)\" class=\"m-auto p-3\" />\n </li>\n <template v-else>\n <li\n v-for=\"(opt, idx) in filteredOptions\"\n :key=\"opt.value ?? `cb-${idx}`\"\n class=\"d-option ds-option\"\n :class=\"{ 'ds-option--selected': opt.value && isSelected(opt.value) }\"\n tabindex=\"0\"\n @click=\"selectOption(opt)\"\n @keydown=\"onOptionKeydown($event, opt)\"\n >\n <span\n v-if=\"cfg.multiple && opt.value\"\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': isSelected(opt.value) }\"\n ></span>\n <i v-if=\"opt.icon\" class=\"fa-fw\" :class=\"opt.icon\"></i>\n <span\n class=\"d-option__label\"\n :class=\"{ 'c-truncate': cfg.textEllipsis }\"\n v-html=\"highlight(opt.label)\"\n ></span>\n </li>\n <li v-if=\"filteredOptions.length === 0\" class=\"ds-option ds-option--empty\">\n Nincs találat\n </li>\n </template>\n </ul>\n <div v-if=\"cfg.multiple\" class=\"c-footer\">\n <Button\n v-if=\"cfg.clearable && selection.length > 0\"\n label=\"Törlés\"\n outline\n @click=\"clear\"\n />\n <Button label=\"OK\" type=\"success\" @click=\"confirm\" />\n </div>\n </div>\n </div>\n </Teleport>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/dropdown-select.scss\"></style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components28.js","names":[],"sources":["../src/components/DropdownSelect.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface DropdownSelectConfig {\n placeholder?: string\n filterable?: boolean\n filterPlaceholder?: string\n clearable?: boolean\n textEllipsis?: boolean\n multiple?: boolean\n lazy?: boolean\n size?: ControlSize\n loading?: boolean\n highlight?: boolean\n disabled?: boolean\n}\n\nexport const dropdownSelectConfigDefaults: DropdownSelectConfig = {\n placeholder: 'Válassz...',\n filterable: true,\n filterPlaceholder: 'Kezdj el gépelni...',\n clearable: true,\n textEllipsis: true,\n multiple: false,\n lazy: false,\n loading: false,\n size: 'normal' as ControlSize,\n highlight: true,\n disabled: false,\n}\n\nexport interface DropdownOption {\n icon?: string\n value?: string\n label: string\n callback?: () => void\n}\n\nexport interface DropdownSelectProps {\n modelValue?: DropdownOption | DropdownOption[] | string | string[] | null\n options: DropdownOption[]\n config?: DropdownSelectConfig\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, nextTick } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { ControlSize } from '@/types/types'\nimport Loader from '@/components/Loader.vue'\nimport { useDropdownAnchor } from '@/composables/useDropdownAnchor'\n\nconst props = withDefaults(defineProps<DropdownSelectProps>(), {\n modelValue: null,\n config: () => ({ ...dropdownSelectConfigDefaults }),\n})\n\nconst cfg = computed(() => ({ ...dropdownSelectConfigDefaults, ...props.config }))\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: DropdownOption | DropdownOption[] | null]\n 'filter-input': [filterText: string]\n}>()\n\nconst filterText = ref('')\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst dropdownRef = ref<HTMLElement | null>(null)\nconst filterInputRef = ref<HTMLInputElement | null>(null)\nconst buffer = ref<DropdownOption[]>([])\nconst selection = ref<DropdownOption[]>(normalizeToOptions(props.modelValue, props.options))\n\nconst { isOpen, dropdownStyle, placement } = useDropdownAnchor(wrapperRef, dropdownRef, {\n extraStyle: (rect) => ({\n minWidth: `${rect.width}px`,\n maxWidth: `${rect.width}px`,\n }),\n maxHeight: '20rem',\n})\n\n\nfunction normalizeToOptions(\n val: DropdownOption | DropdownOption[] | string | string[] | null | undefined,\n options: DropdownOption[],\n): DropdownOption[] {\n if (val == null) return []\n const arr = Array.isArray(val) ? val : [val]\n return arr\n .map((entry): DropdownOption | null => {\n if (entry == null) return null\n if (typeof entry === 'object' && 'label' in entry) {\n return entry as DropdownOption\n }\n if (typeof entry === 'string') {\n const found = options.find((o) => o.value === entry)\n return found ?? { value: entry, label: entry }\n }\n return null\n })\n .filter((o): o is DropdownOption => o !== null)\n}\n\nwatch(\n () => [props.modelValue, props.options],\n ([v]) => {\n selection.value = normalizeToOptions(v as typeof props.modelValue, props.options)\n },\n)\n\nwatch(isOpen, (open) => {\n if (open) {\n filterText.value = ''\n if (cfg.value.filterable) nextTick(() => filterInputRef.value?.focus())\n if (cfg.value.lazy) buffer.value = [...selection.value]\n }\n})\n\nfunction onFilterInput(text: string) {\n filterText.value = text\n emit('filter-input', text)\n}\n\nconst selectedLabel = computed(() => {\n if (selection.value.length === 0) return null\n if (!cfg.value.multiple) {\n const sel = selection.value[0]\n\n return props.options.find((o) => o.value === sel?.value)?.label ?? sel?.label ?? null\n }\n if (selection.value.length > 2) return `${selection.value.length} kiválasztva`\n return selection.value\n .map((sel) => props.options.find((o) => o.value === sel.value)?.label ?? sel.label ?? sel.value)\n .join(', ')\n})\n\nconst filteredOptions = computed(() => {\n const q = filterText.value.toLowerCase()\n return q ? props.options.filter((o) => o.label.toLowerCase().includes(q)) : props.options\n})\n\nfunction escapeHtml(str: string) {\n return str.replace(\n /[&<>\"']/g,\n (m) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' })[m]!,\n )\n}\n\nfunction highlight(label: string) {\n const q = filterText.value.trim()\n if (!q || !cfg.value.highlight) return escapeHtml(label)\n\n const safeLabel = escapeHtml(label)\n const safeQ = escapeHtml(q)\n\n const re = new RegExp(safeQ.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'ig')\n return safeLabel.replace(re, (m) => `<mark class=\"ds-option__highlight\">${m}</mark>`)\n}\n\nconst selectableOptions = computed(() => {\n return filteredOptions.value.filter((o) => o.value)\n})\n\nconst allOptionsSelected = computed(() => {\n if (selectableOptions.value.length === 0) return false\n const currentList = cfg.value.lazy && isOpen.value ? buffer.value : selection.value\n return selectableOptions.value.every((o) => o.value && currentList.some((s) => s.value === o.value))\n})\n\nfunction isSelected(value: string): boolean {\n const list = cfg.value.lazy && isOpen.value ? buffer : selection\n return list.value.some((s) => s.value === value)\n}\n\nfunction toggleAllOptions() {\n const currentList = cfg.value.lazy && isOpen.value ? buffer : selection\n const selectableOpts = selectableOptions.value.filter((o) => o.value)\n\n if (allOptionsSelected.value) {\n const selectableValues = new Set(selectableOpts.map((o) => o.value as string))\n currentList.value = currentList.value.filter((s) => !selectableValues.has(s.value ?? ''))\n } else {\n const existingValues = new Set(currentList.value.map((s) => s.value))\n const toAdd = selectableOpts.filter((o) => !existingValues.has(o.value as string))\n currentList.value = [...currentList.value, ...toAdd]\n }\n\n if (!cfg.value.lazy) {\n emit('update:modelValue', selection.value.length > 0 ? [...selection.value] : null)\n }\n}\n\nfunction toggleList(list: DropdownOption[], opt: DropdownOption): DropdownOption[] {\n const idx = list.findIndex((s) => s.value === opt.value)\n return idx >= 0 ? list.filter((_, i) => i !== idx) : [...list, opt]\n}\n\nfunction selectOption(opt: DropdownOption) {\n if (opt.callback) {\n opt.callback()\n isOpen.value = false\n return\n }\n\n const value = opt.value\n if (!value) return\n\n if (cfg.value.multiple) {\n if (cfg.value.lazy) {\n buffer.value = toggleList(buffer.value, opt)\n } else {\n selection.value = toggleList(selection.value, opt)\n emit('update:modelValue', selection.value.length > 0 ? [...selection.value] : null)\n }\n } else {\n selection.value = [opt]\n emit('update:modelValue', opt)\n isOpen.value = false\n }\n}\n\nfunction confirm() {\n if (cfg.value.lazy) {\n selection.value = [...buffer.value]\n emit('update:modelValue', buffer.value.length > 0 ? [...buffer.value] : null)\n }\n isOpen.value = false\n}\n\nfunction clear() {\n if (cfg.value.lazy) {\n buffer.value = []\n } else {\n selection.value = []\n emit('update:modelValue', null)\n }\n}\n\nfunction onOptionKeydown(e: KeyboardEvent, opt: DropdownOption) {\n if (e.key === ' ') {\n e.preventDefault()\n selectOption(opt)\n } else if (e.key === 'Enter') {\n e.preventDefault()\n confirm()\n }\n}\n\nfunction toggleOpen() {\n if (cfg.value.disabled) return\n isOpen.value = !isOpen.value\n if (isOpen.value) {\n if (cfg.value.filterable) {\n filterText.value = ''\n emit('filter-input', '')\n }\n }\n}\n\nfunction clearInput() {\n if (cfg.value.disabled) return\n selection.value = []\n emit('update:modelValue', null)\n isOpen.value = false\n}\n\nfunction focusAndOpen() {\n if (cfg.value.disabled) return\n isOpen.value = true\n if (cfg.value.filterable) nextTick(() => filterInputRef.value?.focus())\n}\n\nfunction handleFilterClear() {\n filterText.value = ''\n emit('filter-input', '')\n}\n\ndefineExpose({ focusAndOpen })\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"wrapperRef\" class=\"c-wrapper ds-wrapper\">\n <div\n class=\"c-input-row pointer\"\n :class=\"{\n 'c-input-row--sm': cfg.size === 'small',\n 'c-input-row--lg': cfg.size === 'large',\n 'c-input-row--disabled': cfg.disabled,\n 'c-input-row--open': isOpen,\n }\"\n :aria-disabled=\"cfg.disabled || undefined\"\n @click=\"toggleOpen()\"\n >\n <span v-if=\"selectedLabel\" class=\"c-truncate ds-value\">{{ selectedLabel }}</span>\n <span v-else class=\"c-placeholder\">{{ cfg.placeholder }}</span>\n <button\n v-if=\"cfg.clearable && selection.length > 0\"\n type=\"button\"\n class=\"c-icon-btn c-icon-btn--clear ds-clear-btn\"\n @click.stop=\"clearInput()\"\n aria-label=\"Törlés\"\n >\n <i class=\"fa-solid fa-fw fa-xmark\"></i>\n </button>\n <span\n class=\"c-icon-btn c-icon-btn--chevron mr-2\"\n :class=\"{ 'c-icon-btn--chevron-open': isOpen }\"\n >\n <i class=\"fa-solid fa-fw fa-chevron-down\"></i>\n </span>\n </div>\n </div>\n <Teleport to=\"body\">\n <div class=\"ac-component\">\n <div\n v-if=\"isOpen\"\n ref=\"dropdownRef\"\n class=\"c-dropdown ds-dropdown ds-wrapper\"\n :class=\"{ 'ds-dropdown--multiple': cfg.multiple, 'ds-dropdown--up': placement === 'up' }\"\n :style=\"dropdownStyle\"\n >\n <div v-if=\"cfg.filterable\" class=\"ds-filter\">\n <span\n v-if=\"cfg.multiple\"\n class=\"c-checkbox ds-select-all-checkbox\"\n :class=\"{ 'c-checkbox--checked': allOptionsSelected }\"\n @click.stop=\"toggleAllOptions()\"\n :title=\"allOptionsSelected ? 'Összes kijelölés törlése' : 'Összes kijelölése'\"\n ></span>\n <input\n ref=\"filterInputRef\"\n type=\"text\"\n id=\"ds-filter-input\"\n class=\"c-focus ds-filter-input\"\n :value=\"filterText\"\n @input=\"onFilterInput(($event.target as HTMLInputElement).value)\"\n autocomplete=\"off\"\n :placeholder=\"cfg.filterPlaceholder\"\n @click.stop\n />\n <button\n v-if=\"filterText\"\n type=\"button\"\n class=\"c-icon-btn c-icon-btn--clear ds-filter-clear\"\n @click.stop=\"handleFilterClear()\"\n aria-label=\"Szűrők törlése\"\n >\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <ul class=\"ds-options c-scroll\">\n <li v-if=\"cfg.loading\" class=\"ds-option ds-option--loading\">\n <Loader size=\"2rem\" color=\"var(--neutral-300)\" class=\"m-auto p-3\" />\n </li>\n <template v-else>\n <li\n v-for=\"(opt, idx) in filteredOptions\"\n :key=\"opt.value ?? `cb-${idx}`\"\n class=\"d-option ds-option\"\n :class=\"{ 'ds-option--selected': opt.value && isSelected(opt.value) }\"\n tabindex=\"0\"\n @click=\"selectOption(opt)\"\n @keydown=\"onOptionKeydown($event, opt)\"\n >\n <span\n v-if=\"cfg.multiple && opt.value\"\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': isSelected(opt.value) }\"\n ></span>\n <i v-if=\"opt.icon\" class=\"fa-fw\" :class=\"opt.icon\"></i>\n <span\n class=\"d-option__label\"\n :class=\"{ 'c-truncate': cfg.textEllipsis }\"\n v-html=\"highlight(opt.label)\"\n ></span>\n </li>\n <li v-if=\"filteredOptions.length === 0\" class=\"ds-option ds-option--empty\">\n Nincs találat\n </li>\n </template>\n </ul>\n <div v-if=\"cfg.multiple\" class=\"c-footer\">\n <Button v-if=\"cfg.clearable && selection.length > 0\" label=\"Törlés\" outline @click=\"clear\" />\n <Button label=\"OK\" type=\"success\" @click=\"confirm\" />\n </div>\n </div>\n </div>\n </Teleport>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/dropdown-select.scss\"></style>\n"],"mappings":""}
1
+ {"version":3,"file":"admins-components28.js","names":[],"sources":["../src/components/DropdownSelect.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface DropdownSelectConfig {\n placeholder?: string\n filterable?: boolean\n filterPlaceholder?: string\n clearable?: boolean\n textEllipsis?: boolean\n multiple?: boolean\n lazy?: boolean\n size?: ControlSize\n loading?: boolean\n highlight?: boolean\n disabled?: boolean\n}\n\nexport const dropdownSelectConfigDefaults: DropdownSelectConfig = {\n placeholder: 'Válassz...',\n filterable: true,\n filterPlaceholder: 'Kezdj el gépelni...',\n clearable: true,\n textEllipsis: true,\n multiple: false,\n lazy: false,\n loading: false,\n size: 'normal' as ControlSize,\n highlight: true,\n disabled: false,\n}\n\nexport interface DropdownOption {\n icon?: string\n value?: string\n label: string\n callback?: () => void\n}\n\nexport interface DropdownSelectProps {\n modelValue?: DropdownOption | DropdownOption[] | string | string[] | null\n options: DropdownOption[]\n config?: DropdownSelectConfig\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, nextTick } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { ControlSize } from '@/types/types'\nimport Loader from '@/components/Loader.vue'\nimport { useDropdownAnchor } from '@/composables/useDropdownAnchor'\n\nconst props = withDefaults(defineProps<DropdownSelectProps>(), {\n modelValue: null,\n config: () => ({ ...dropdownSelectConfigDefaults }),\n})\n\nconst cfg = computed(() => ({ ...dropdownSelectConfigDefaults, ...props.config }))\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: DropdownOption | DropdownOption[] | null]\n 'filter-input': [filterText: string]\n}>()\n\nconst filterText = ref('')\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst dropdownRef = ref<HTMLElement | null>(null)\nconst filterInputRef = ref<HTMLInputElement | null>(null)\nconst buffer = ref<DropdownOption[]>([])\nconst selection = ref<DropdownOption[]>(normalizeToOptions(props.modelValue, props.options))\n\nconst { isOpen, dropdownStyle, placement } = useDropdownAnchor(wrapperRef, dropdownRef, {\n extraStyle: (rect) => ({\n minWidth: `${rect.width}px`,\n maxWidth: `${rect.width}px`,\n }),\n maxHeight: '20rem',\n})\n\nfunction normalizeToOptions(\n val: DropdownOption | DropdownOption[] | string | string[] | null | undefined,\n options: DropdownOption[],\n): DropdownOption[] {\n if (val == null) return []\n const arr = Array.isArray(val) ? val : [val]\n return arr\n .map((entry): DropdownOption | null => {\n if (entry == null) return null\n if (typeof entry === 'object' && 'label' in entry) {\n return entry as DropdownOption\n }\n if (typeof entry === 'string') {\n const found = options.find((o) => o.value === entry)\n return found ?? { value: entry, label: entry }\n }\n return null\n })\n .filter((o): o is DropdownOption => o !== null)\n}\n\nwatch(\n () => [props.modelValue, props.options],\n ([v]) => {\n selection.value = normalizeToOptions(v as typeof props.modelValue, props.options)\n },\n)\n\nwatch(isOpen, (open) => {\n if (open) {\n filterText.value = ''\n if (cfg.value.filterable) nextTick(() => filterInputRef.value?.focus())\n if (cfg.value.lazy) buffer.value = [...selection.value]\n }\n})\n\nfunction onFilterInput(text: string) {\n filterText.value = text\n emit('filter-input', text)\n}\n\nconst selectedLabel = computed(() => {\n if (selection.value.length === 0) return null\n if (!cfg.value.multiple) {\n const sel = selection.value[0]\n\n return props.options.find((o) => o.value === sel?.value)?.label ?? sel?.label ?? null\n }\n if (selection.value.length > 2) return `${selection.value.length} kiválasztva`\n return selection.value\n .map((sel) => props.options.find((o) => o.value === sel.value)?.label ?? sel.label ?? sel.value)\n .join(', ')\n})\n\nconst filteredOptions = computed(() => {\n const q = filterText.value.toLowerCase()\n return q ? props.options.filter((o) => o.label.toLowerCase().includes(q)) : props.options\n})\n\nfunction escapeHtml(str: string) {\n return str.replace(\n /[&<>\"']/g,\n (m) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' })[m]!,\n )\n}\n\nfunction highlight(label: string) {\n const q = filterText.value.trim()\n if (!q || !cfg.value.highlight) return escapeHtml(label)\n\n const safeLabel = escapeHtml(label)\n const safeQ = escapeHtml(q)\n\n const re = new RegExp(safeQ.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'ig')\n return safeLabel.replace(re, (m) => `<mark class=\"ds-option__highlight\">${m}</mark>`)\n}\n\nconst selectableOptions = computed(() => {\n return filteredOptions.value.filter((o) => o.value)\n})\n\nconst allOptionsSelected = computed(() => {\n if (selectableOptions.value.length === 0) return false\n const currentList = cfg.value.lazy && isOpen.value ? buffer.value : selection.value\n return selectableOptions.value.every(\n (o) => o.value && currentList.some((s) => s.value === o.value),\n )\n})\n\nfunction isSelected(value: string): boolean {\n const list = cfg.value.lazy && isOpen.value ? buffer : selection\n return list.value.some((s) => s.value === value)\n}\n\nfunction toggleAllOptions() {\n const currentList = cfg.value.lazy && isOpen.value ? buffer : selection\n const selectableOpts = selectableOptions.value.filter((o) => o.value)\n\n if (allOptionsSelected.value) {\n const selectableValues = new Set(selectableOpts.map((o) => o.value as string))\n currentList.value = currentList.value.filter((s) => !selectableValues.has(s.value ?? ''))\n } else {\n const existingValues = new Set(currentList.value.map((s) => s.value))\n const toAdd = selectableOpts.filter((o) => !existingValues.has(o.value as string))\n currentList.value = [...currentList.value, ...toAdd]\n }\n\n if (!cfg.value.lazy) {\n emit('update:modelValue', selection.value.length > 0 ? [...selection.value] : null)\n }\n}\n\nfunction toggleList(list: DropdownOption[], opt: DropdownOption): DropdownOption[] {\n const idx = list.findIndex((s) => s.value === opt.value)\n return idx >= 0 ? list.filter((_, i) => i !== idx) : [...list, opt]\n}\n\nfunction selectOption(opt: DropdownOption) {\n if (opt.callback) {\n opt.callback()\n isOpen.value = false\n return\n }\n\n const value = opt.value\n if (!value) return\n\n if (cfg.value.multiple) {\n if (cfg.value.lazy) {\n buffer.value = toggleList(buffer.value, opt)\n } else {\n selection.value = toggleList(selection.value, opt)\n emit('update:modelValue', selection.value.length > 0 ? [...selection.value] : null)\n }\n } else {\n selection.value = [opt]\n emit('update:modelValue', opt)\n isOpen.value = false\n }\n}\n\nfunction confirm() {\n if (cfg.value.lazy) {\n selection.value = [...buffer.value]\n emit('update:modelValue', buffer.value.length > 0 ? [...buffer.value] : null)\n }\n isOpen.value = false\n}\n\nfunction clear() {\n if (cfg.value.lazy) {\n buffer.value = []\n } else {\n selection.value = []\n emit('update:modelValue', null)\n }\n}\n\nfunction onOptionKeydown(e: KeyboardEvent, opt: DropdownOption) {\n if (e.key === ' ') {\n e.preventDefault()\n selectOption(opt)\n } else if (e.key === 'Enter') {\n e.preventDefault()\n confirm()\n }\n}\n\nfunction toggleOpen() {\n if (cfg.value.disabled) return\n isOpen.value = !isOpen.value\n if (isOpen.value) {\n if (cfg.value.filterable) {\n filterText.value = ''\n emit('filter-input', '')\n }\n }\n}\n\nfunction clearInput() {\n if (cfg.value.disabled) return\n selection.value = []\n emit('update:modelValue', null)\n isOpen.value = false\n}\n\nfunction focusAndOpen() {\n if (cfg.value.disabled) return\n isOpen.value = true\n if (cfg.value.filterable) nextTick(() => filterInputRef.value?.focus())\n}\n\nfunction handleFilterClear() {\n filterText.value = ''\n emit('filter-input', '')\n}\n\ndefineExpose({ focusAndOpen })\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"wrapperRef\" class=\"c-wrapper ds-wrapper\">\n <div\n class=\"c-input-row pointer\"\n :class=\"{\n 'c-input-row--sm': cfg.size === 'small',\n 'c-input-row--lg': cfg.size === 'large',\n 'c-input-row--disabled': cfg.disabled,\n 'c-input-row--open': isOpen,\n }\"\n :aria-disabled=\"cfg.disabled || undefined\"\n @click=\"toggleOpen()\"\n >\n <span v-if=\"selectedLabel\" class=\"c-truncate ds-value\">{{ selectedLabel }}</span>\n <span v-else class=\"c-placeholder\">{{ cfg.placeholder }}</span>\n <button\n v-if=\"cfg.clearable && selection.length > 0\"\n type=\"button\"\n class=\"c-icon-btn c-icon-btn--clear ds-clear-btn\"\n @click.stop=\"clearInput()\"\n aria-label=\"Törlés\"\n >\n <i class=\"fa-solid fa-fw fa-xmark\"></i>\n </button>\n <span\n class=\"c-icon-btn c-icon-btn--chevron mr-2\"\n :class=\"{ 'c-icon-btn--chevron-open': isOpen }\"\n >\n <i class=\"fa-solid fa-fw fa-chevron-down\"></i>\n </span>\n </div>\n </div>\n <Teleport to=\"body\">\n <div class=\"ac-component\">\n <div\n v-if=\"isOpen\"\n ref=\"dropdownRef\"\n class=\"c-dropdown ds-dropdown ds-wrapper\"\n :class=\"{ 'ds-dropdown--multiple': cfg.multiple, 'ds-dropdown--up': placement === 'up' }\"\n :style=\"dropdownStyle\"\n >\n <div v-if=\"cfg.filterable\" class=\"ds-filter\">\n <span\n v-if=\"cfg.multiple\"\n class=\"c-checkbox ds-select-all-checkbox\"\n :class=\"{ 'c-checkbox--checked': allOptionsSelected }\"\n @click.stop=\"toggleAllOptions()\"\n :title=\"allOptionsSelected ? 'Összes kijelölés törlése' : 'Összes kijelölése'\"\n ></span>\n <input\n ref=\"filterInputRef\"\n type=\"text\"\n id=\"ds-filter-input\"\n class=\"c-focus ds-filter-input\"\n :value=\"filterText\"\n @input=\"onFilterInput(($event.target as HTMLInputElement).value)\"\n autocomplete=\"off\"\n :placeholder=\"cfg.filterPlaceholder\"\n @click.stop\n />\n <button\n v-if=\"filterText\"\n type=\"button\"\n class=\"c-icon-btn c-icon-btn--clear ds-filter-clear\"\n @click.stop=\"handleFilterClear()\"\n aria-label=\"Szűrők törlése\"\n >\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <ul class=\"ds-options c-scroll\">\n <li v-if=\"cfg.loading\" class=\"ds-option ds-option--loading\">\n <Loader size=\"2rem\" color=\"var(--ac-c-neutral-300)\" class=\"m-auto p-3\" />\n </li>\n <template v-else>\n <li\n v-for=\"(opt, idx) in filteredOptions\"\n :key=\"opt.value ?? `cb-${idx}`\"\n class=\"d-option ds-option\"\n :class=\"{ 'ds-option--selected': opt.value && isSelected(opt.value) }\"\n tabindex=\"0\"\n @click=\"selectOption(opt)\"\n @keydown=\"onOptionKeydown($event, opt)\"\n >\n <span\n v-if=\"cfg.multiple && opt.value\"\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': isSelected(opt.value) }\"\n ></span>\n <i v-if=\"opt.icon\" class=\"fa-fw\" :class=\"opt.icon\"></i>\n <span\n class=\"d-option__label\"\n :class=\"{ 'c-truncate': cfg.textEllipsis }\"\n v-html=\"highlight(opt.label)\"\n ></span>\n </li>\n <li v-if=\"filteredOptions.length === 0\" class=\"ds-option ds-option--empty\">\n Nincs találat\n </li>\n </template>\n </ul>\n <div v-if=\"cfg.multiple\" class=\"c-footer\">\n <Button\n v-if=\"cfg.clearable && selection.length > 0\"\n label=\"Törlés\"\n outline\n @click=\"clear\"\n />\n <Button label=\"OK\" type=\"success\" @click=\"confirm\" />\n </div>\n </div>\n </div>\n </Teleport>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/dropdown-select.scss\"></style>\n"],"mappings":""}
package/dist/main.css CHANGED
@@ -1 +1 @@
1
- @import"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/regular.min.css";:root{--ac-font-family: 'Geist', 'Segoe UI', system-ui, -apple-system, sans-serif;--background-50: #f7f9f9;--background-100: #eff3f3;--neutral-0: #fff;--neutral-50: #f2f4f4;--neutral-100: #e5e9ea;--neutral-150: #dae0e1;--neutral-200: #cbd3d4;--neutral-250: #bec8ca;--neutral-300: #b0bdbf;--neutral-400: #96a7a9;--neutral-500: #7c9194;--neutral-600: #637476;--neutral-700: #4a5759;--neutral-800: #323a3b;--neutral-900: #1f2d2d;--site-50: #ffebe1;--site-100: #ffceb6;--site-200: #f79d71;--site-300: #f5844e;--site-500: #f26522;--site-600: #da5b1f;--site-700: #c2511b;--premium-50: #dfefef;--premium-100: #cfe7e6;--premium-200: #bfdfde;--premium-300: #9ed0ce;--premium-400: #7ec0bd;--premium-500: #5eb0ad;--premium-600: #4b8d8a;--premium-700: #386a68;--pulse-10: #e0d8f1;--pulse-100: #a18ad5;--pulse-400: #7250c0;--pulse-500: #623cb9;--ac-color-primary: #146eb4;--ac-color-primary-rgb: 20, 110, 180;--ac-color-error: #d92d20;--ac-color-warning: #dc6803;--ac-color-success: #067647;--ac-color-success-rgb: 6, 118, 71;--ac-color-info: #1570ef;--ac-color-info-rgb: 21, 112, 239;--ac-color-text: var(--neutral-800);--ac-color-darker-blue: #1246d4;--ac-color-lighter-blue: rgb(45 126 241);--ac-input-padding: 0.5rem;--ac-input-padding-sm: 0.3125rem;--ac-input-padding-lg: 0.75rem;--ac-field-padding: 0.5rem 0.75rem;--ac-field-padding-sm: 0.3125rem 0.625rem;--ac-field-padding-lg: 0.6875rem 1rem;--ac-field-font-size: 0.825rem;--ac-field-font-size-sm: 0.75rem;--ac-field-font-size-lg: 0.9375rem;--ac-field-border-radius: 0.5rem;--ac-field-border-radius-sm: 0.375rem;--ac-field-border-radius-lg: 0.625rem;--ac-dropdown-max-height: 17.5rem;--ac-section-bottom-margin: 1rem;--ac-placeholder-color: var(--neutral-600)}@media(prefers-reduced-motion: no-preference){html{interpolate-size:allow-keywords}}.ac-component{font-family:var(--ac-font-family);letter-spacing:-0.18px;color:var(--neutral-800);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}.ac-component.v-tooltip{background:var(--neutral-800);font-family:var(--ac-font-family);color:var(--neutral-0);font-size:.8125rem;font-weight:400;line-height:1.4;padding:var(--ac-field-padding);border-radius:.5rem;white-space:normal;width:max-content;box-shadow:0 2px 6px rgba(0,0,0,.12)}.ac-component{--vf-ring-color: var(--ac-color-primary);--vf-primary: var(--ac-color-primary);--vf-border-color-checked: var(--ac-color-primary)}.ac-component.is-font-small,.ac-component .is-font-small{font-size:.875rem}.ac-component.is-font-normal,.ac-component .is-font-normal{font-size:1rem}.ac-component.is-font-large,.ac-component .is-font-large{font-size:1.125rem}.ac-component img,.ac-component picture,.ac-component video,.ac-component canvas,.ac-component svg{display:block;max-width:100%}.ac-component input,.ac-component button,.ac-component textarea,.ac-component select{font-family:inherit;letter-spacing:inherit}.ac-component p,.ac-component h1,.ac-component h2,.ac-component h3,.ac-component h4,.ac-component h5,.ac-component h6{overflow-wrap:break-word}.ac-component *{margin:0}.ac-component .fa-tag,.ac-component .fa-arrow-rotate-right{transform:translateY(0.5px)}.ac-component .align-center-fix{transform:translateY(0.5px)}.ac-component hr.separator{border:none;border-top:1px solid var(--neutral-200);margin:.5rem 0}.ac-component .lh-1{line-height:1}.ac-component .flex-center{display:flex;align-items:center}.ac-component .click-expand{--expand-size: 0.5rem}.ac-component .click-expand::after{content:"";position:absolute;inset:calc(-1*var(--expand-size))}.ac-component .m-0{margin:0 !important}.ac-component .mx-0{margin-left:0 !important;margin-right:0 !important}.ac-component .my-0{margin-top:0 !important;margin-bottom:0 !important}.ac-component .mt-0{margin-top:0 !important}.ac-component .mb-0{margin-bottom:0 !important}.ac-component .ml-0{margin-left:0 !important}.ac-component .mr-0{margin-right:0 !important}.ac-component .m-1{margin:.25rem !important}.ac-component .mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.ac-component .my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.ac-component .mt-1{margin-top:.25rem !important}.ac-component .mb-1{margin-bottom:.25rem !important}.ac-component .ml-1{margin-left:.25rem !important}.ac-component .mr-1{margin-right:.25rem !important}.ac-component .m-2{margin:.5rem !important}.ac-component .mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.ac-component .my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.ac-component .mt-2{margin-top:.5rem !important}.ac-component .mb-2{margin-bottom:.5rem !important}.ac-component .ml-2{margin-left:.5rem !important}.ac-component .mr-2{margin-right:.5rem !important}.ac-component .m-3{margin:1rem !important}.ac-component .mx-3{margin-left:1rem !important;margin-right:1rem !important}.ac-component .my-3{margin-top:1rem !important;margin-bottom:1rem !important}.ac-component .mt-3{margin-top:1rem !important}.ac-component .mb-3{margin-bottom:1rem !important}.ac-component .ml-3{margin-left:1rem !important}.ac-component .mr-3{margin-right:1rem !important}.ac-component .m-4{margin:1.5rem !important}.ac-component .mx-4{margin-left:1.5rem !important;margin-right:1.5rem !important}.ac-component .my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.ac-component .mt-4{margin-top:1.5rem !important}.ac-component .mb-4{margin-bottom:1.5rem !important}.ac-component .ml-4{margin-left:1.5rem !important}.ac-component .mr-4{margin-right:1.5rem !important}.ac-component .m-5{margin:3rem !important}.ac-component .mx-5{margin-left:3rem !important;margin-right:3rem !important}.ac-component .my-5{margin-top:3rem !important;margin-bottom:3rem !important}.ac-component .mt-5{margin-top:3rem !important}.ac-component .mb-5{margin-bottom:3rem !important}.ac-component .ml-5{margin-left:3rem !important}.ac-component .mr-5{margin-right:3rem !important}.ac-component .m-auto{margin:auto !important}.ac-component .mx-auto{margin-left:auto !important;margin-right:auto !important}.ac-component .my-auto{margin-top:auto !important;margin-bottom:auto !important}.ac-component .mt-auto{margin-top:auto !important}.ac-component .mb-auto{margin-bottom:auto !important}.ac-component .ml-auto{margin-left:auto !important}.ac-component .mr-auto{margin-right:auto !important}.ac-component .p-0{padding:0 !important}.ac-component .px-0{padding-left:0 !important;padding-right:0 !important}.ac-component .py-0{padding-top:0 !important;padding-bottom:0 !important}.ac-component .pt-0{padding-top:0 !important}.ac-component .pb-0{padding-bottom:0 !important}.ac-component .pl-0{padding-left:0 !important}.ac-component .pr-0{padding-right:0 !important}.ac-component .p-1{padding:.25rem !important}.ac-component .px-1{padding-left:.25rem !important;padding-right:.25rem !important}.ac-component .py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.ac-component .pt-1{padding-top:.25rem !important}.ac-component .pb-1{padding-bottom:.25rem !important}.ac-component .pl-1{padding-left:.25rem !important}.ac-component .pr-1{padding-right:.25rem !important}.ac-component .p-2{padding:.5rem !important}.ac-component .px-2{padding-left:.5rem !important;padding-right:.5rem !important}.ac-component .py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.ac-component .pt-2{padding-top:.5rem !important}.ac-component .pb-2{padding-bottom:.5rem !important}.ac-component .pl-2{padding-left:.5rem !important}.ac-component .pr-2{padding-right:.5rem !important}.ac-component .p-3{padding:1rem !important}.ac-component .px-3{padding-left:1rem !important;padding-right:1rem !important}.ac-component .py-3{padding-top:1rem !important;padding-bottom:1rem !important}.ac-component .pt-3{padding-top:1rem !important}.ac-component .pb-3{padding-bottom:1rem !important}.ac-component .pl-3{padding-left:1rem !important}.ac-component .pr-3{padding-right:1rem !important}.ac-component .p-4{padding:1.5rem !important}.ac-component .px-4{padding-left:1.5rem !important;padding-right:1.5rem !important}.ac-component .py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.ac-component .pt-4{padding-top:1.5rem !important}.ac-component .pb-4{padding-bottom:1.5rem !important}.ac-component .pl-4{padding-left:1.5rem !important}.ac-component .pr-4{padding-right:1.5rem !important}.ac-component .p-5{padding:3rem !important}.ac-component .px-5{padding-left:3rem !important;padding-right:3rem !important}.ac-component .py-5{padding-top:3rem !important;padding-bottom:3rem !important}.ac-component .pt-5{padding-top:3rem !important}.ac-component .pb-5{padding-bottom:3rem !important}.ac-component .pl-5{padding-left:3rem !important}.ac-component .pr-5{padding-right:3rem !important}.ac-component .gap-0{gap:0 !important}.ac-component .gap-1{gap:.25rem !important}.ac-component .gap-2{gap:.5rem !important}.ac-component .gap-3{gap:1rem !important}.ac-component .gap-4{gap:1.5rem !important}.ac-component .gap-5{gap:3rem !important}.ac-component .d-flex{display:flex !important}.ac-component .d-inline-flex{display:inline-flex !important}.ac-component .d-block{display:block !important}.ac-component .d-inline-block{display:inline-block !important}.ac-component .flex-wrap{flex-wrap:wrap}.ac-component .flex-column{flex-direction:column}.ac-component .text-center{text-align:center}.ac-component .w-100{width:100% !important}.ac-component .mw-100{max-width:100% !important}.ac-component .h-100{height:100% !important}.ac-component .mh-100{max-height:100% !important}.ac-component .pointer{cursor:pointer}.ac-component .nowrap{white-space:nowrap}.ac-component .align-items-center{align-items:center}.ac-component .text-primary,.ac-component .text-normal{color:var(--neutral-800) !important}.ac-component .text-info{color:var(--ac-color-info) !important}.ac-component .text-success{color:var(--ac-color-success) !important}.ac-component .text-warning{color:var(--ac-color-warning) !important}.ac-component .text-error,.ac-component .text-danger{color:var(--ac-color-error) !important}.ac-component .lh-normal{line-height:normal !important}.ac-component .lh-1{line-height:1 !important}.ac-component .lh-inherit{line-height:inherit !important}.ac-component .hide,.ac-component .hidden{display:none !important}.ac-component .c-wrapper{position:relative}.ac-component .c-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-component .c-field-size{font-size:var(--ac-field-font-size);padding:var(--ac-field-padding)}.ac-component .c-field-size--sm,.ac-component .c-field-size--small{font-size:var(--ac-field-font-size-sm);padding:var(--ac-field-padding-sm)}.ac-component .c-field-size--lg,.ac-component .c-field-size--large{font-size:var(--ac-field-font-size-lg);padding:var(--ac-field-padding-lg)}.ac-component .c-type-color{--text-color: var(--neutral-800);--hover-bg-color: var(--neutral-100);--hover-text-color: var(--neutral-800);color:var(--text-color)}.ac-component .c-type-color:hover{background-color:var(--hover-bg-color);color:var(--hover-text-color)}.ac-component .c-type-color--error{--text-color: var(--ac-color-error);--hover-bg-color: var(--ac-color-error);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--success{--text-color: var(--ac-color-success);--hover-bg-color: var(--ac-color-success);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--warning{--text-color: var(--ac-color-warning);--hover-bg-color: var(--ac-color-warning);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--info{--text-color: var(--ac-color-info);--hover-bg-color: var(--ac-color-info);--hover-text-color: var(--neutral-0)}.ac-component .c-type-color--dark{--text-color: var(--neutral-0);--hover-bg-color: var(--neutral-800);--hover-text-color: var(--neutral-0)}.ac-component .c-chip{display:inline-flex;padding:0;border-radius:.5rem;background:var(--neutral-100);color:var(--neutral-700);font-size:.75rem;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-component .c-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:999px;background:var(--neutral-200);color:var(--neutral-700);font-family:var(--ac-font-family);font-size:.875em;font-weight:700;font-variant-numeric:tabular-nums}.ac-component .c-scroll{scrollbar-width:thin;scrollbar-color:var(--neutral-300) rgba(0,0,0,0)}.ac-component .c-scroll::-webkit-scrollbar{width:.5rem;height:.5rem}.ac-component .c-scroll::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.ac-component .c-scroll::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:999px;border:2px solid rgba(0,0,0,0);background-clip:content-box;transition:background-color .15s}.ac-component .c-scroll::-webkit-scrollbar-thumb:hover{background:var(--neutral-500);background-clip:content-box}.ac-component .c-scroll::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.ac-component .c-placeholder{flex:1;font-style:italic;min-width:0;padding:var(--ac-input-padding);color:var(--ac-placeholder-color);user-select:none}.ac-component .c-input{width:100%;font-family:inherit;letter-spacing:-0.36px;border:none;background:rgba(0,0,0,0);padding:var(--ac-input-padding);font-size:var(--ac-field-font-size);color:var(--neutral-900)}.ac-component .c-input::placeholder{color:var(--ac-placeholder-color);font-style:italic}.ac-component .c-input:-webkit-autofill,.ac-component .c-input:-webkit-autofill:hover,.ac-component .c-input:-webkit-autofill:focus,.ac-component .c-input:-webkit-autofill:active{border-radius:inherit}.ac-component .c-input:focus,.ac-component .c-input:focus-within,.ac-component .c-input:focus-visible,.ac-component .c-focus:focus,.ac-component .c-focus:focus-within,.ac-component .c-focus:focus-visible{border-color:var(--ac-color-lighter-blue);outline:0}.ac-component .c-input-wrapper{position:relative;display:flex;flex-direction:column;gap:.25rem}.ac-component .c-textarea{resize:none}.ac-component .c-input-row{display:flex;align-items:center;font-family:inherit;border:1px solid var(--neutral-200);border-radius:var(--ac-field-border-radius);background:var(--neutral-0);font-size:var(--ac-field-font-size);color:var(--neutral-900);transition:border-color .15s}.ac-component .c-input-row::placeholder{color:var(--ac-placeholder-color);font-style:italic}.ac-component .c-input-row--disabled{background:var(--neutral-50);cursor:not-allowed}.ac-component .c-input-row:is(input,textarea){padding:var(--ac-input-padding)}.ac-component .c-input-row:hover{border-color:var(--neutral-300)}.ac-component .c-input-row:focus-within,.ac-component .c-input-row:focus,.ac-component .c-input-row:focus-visible,.ac-component .c-input-row--focus{border-color:var(--ac-color-lighter-blue);box-shadow:0 0 0 2px rgba(21,112,239,.1)}.ac-component .c-input-row:focus-within:hover,.ac-component .c-input-row:focus:hover,.ac-component .c-input-row:focus-visible:hover,.ac-component .c-input-row--focus:hover{border-color:var(--ac-color-darker-blue)}.ac-component .c-input-row--sm{border-radius:var(--ac-field-border-radius-sm);font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--sm:is(input,textarea){padding:var(--ac-input-padding-sm)}.ac-component .c-input-row--sm .c-icon-btn{font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--sm .c-placeholder{font-size:var(--ac-field-font-size-sm);padding:var(--ac-input-padding-sm)}.ac-component .c-input-row--sm .c-input{padding:var(--ac-input-padding-sm);font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--lg{border-radius:var(--ac-field-border-radius-lg);font-size:var(--ac-field-font-size-lg)}.ac-component .c-input-row--lg:is(input,textarea){padding:var(--ac-input-padding-lg)}.ac-component .c-input-row--lg .c-icon-btn{font-size:var(--ac-field-font-size-lg)}.ac-component .c-input-row--lg .c-placeholder{font-size:var(--ac-field-font-size-lg);padding:var(--ac-input-padding-lg)}.ac-component .c-input-row--lg .c-input{padding:var(--ac-input-padding-lg);font-size:var(--ac-field-font-size-lg)}.ac-component .c-icon-btn{display:flex;align-items:center;justify-content:center;border:none;background:rgba(0,0,0,0);cursor:pointer;transition:color .15s}.ac-component .c-icon-btn--clear{color:var(--neutral-400);padding-left:0;padding-right:.25rem}.ac-component .c-icon-btn--clear:hover{color:var(--ac-color-error)}.ac-component .c-icon-btn--chevron{color:var(--neutral-500);transition:transform .2s}.ac-component .c-icon-btn--chevron-open{transform:rotate(180deg)}.ac-component .c-icon-btn--calendar{font-size:.925rem;color:var(--neutral-500);padding-inline:.375rem}.ac-component .c-icon-btn--calendar:hover{color:var(--site-500)}.ac-component .c-icon-btn--hidden{visibility:hidden;pointer-events:none}.ac-component .c-dropdown{background:var(--neutral-0);border:1px solid var(--neutral-200);border-radius:var(--ac-field-border-radius);box-shadow:0 2px 12px rgba(0,0,0,.5);overflow:hidden}.ac-component .c-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-top:.25rem;padding:.5rem;border-top:1px solid var(--neutral-100)}.ac-component .c-checkbox{display:inline-block;width:1rem;height:1rem;vertical-align:middle;position:relative;cursor:pointer;border:1.5px solid var(--neutral-300);border-radius:.25rem;background:var(--neutral-0);transition:border-color .15s,background-color .15s}.ac-component .c-checkbox:hover{border-color:var(--ac-color-info);background:var(--premium-300)}.ac-component .c-checkbox::after{content:"";position:absolute;top:50%;left:50%;width:.3rem;height:.55rem;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%, -60%) rotate(45deg);opacity:0}.ac-component .c-checkbox--checked,.ac-component .c-checkbox:checked{border-color:var(--ac-color-info);background:var(--ac-color-info)}.ac-component .c-checkbox--checked::after,.ac-component .c-checkbox:checked::after{opacity:1}.ac-component .c-checkbox--checked:hover,.ac-component .c-checkbox:checked:hover{background:var(--premium-300)}.ac-component .c-checkbox--disabled,.ac-component .c-checkbox:disabled{opacity:.5;cursor:not-allowed}.ac-component input.c-checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;margin:0}.ac-component .c-checkbox-wrapper{display:inline-flex;align-items:center;line-height:1}.ac-component .c-checkbox-wrapper .c-checkbox-inner{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer}.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox{border-color:var(--ac-color-primary);background:rgba(var(--ac-color-primary-rgb), 0.2)}.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox:checked,.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox--checked{background:var(--ac-color-darker-blue)}.ac-component .c-label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--neutral-600)}.ac-component .c-label--on-border{position:absolute;top:-0.5lh;left:.5rem;padding:0 .125rem;font-size:.7rem;background:var(--neutral-0);text-transform:none}.ac-component .c-btn-group{display:inline-flex;border-radius:var(--ac-field-border-radius);gap:0 !important;flex-wrap:nowrap !important}.ac-component .c-btn-group>.c-btn{border-radius:0}.ac-component .c-btn-group>*>.c-btn{border-radius:0}.ac-component .c-btn-group>.c-btn:not(:last-child),.ac-component .c-btn-group>*:not(:last-child)>.c-btn{border-right-width:0}.ac-component .c-btn-group>.c-btn:first-child,.ac-component .c-btn-group>*:first-child>.c-btn{border-top-left-radius:var(--ac-field-border-radius);border-bottom-left-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group>.c-btn:last-child,.ac-component .c-btn-group>*:last-child>.c-btn{border-top-right-radius:var(--ac-field-border-radius);border-bottom-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical{display:inline-flex;flex-direction:column;border-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical>.c-btn{border-radius:0;width:100%}.ac-component .c-btn-group-vertical>*>.c-btn{border-radius:0;width:100%}.ac-component .c-btn-group-vertical>.c-btn:not(:last-child),.ac-component .c-btn-group-vertical>*:not(:last-child)>.c-btn{border-bottom-width:0}.ac-component .c-btn-group-vertical>.c-btn:first-child,.ac-component .c-btn-group-vertical>*:first-child>.c-btn{border-top-left-radius:var(--ac-field-border-radius);border-top-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical>.c-btn:last-child,.ac-component .c-btn-group-vertical>*:last-child>.c-btn{border-bottom-left-radius:var(--ac-field-border-radius);border-bottom-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn{--btn-color: var(--neutral-200);--btn-bg: var(--background-50);--btn-text: var(--neutral-800);--btn-hover-bg: var(--neutral-100);--btn-hover-border: var(--neutral-300);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700);font-family:var(--ac-font-family);letter-spacing:-0.18px;display:inline-flex;align-items:center;gap:.375em;padding:var(--ac-field-padding);border:1px solid var(--btn-color);border-radius:var(--ac-field-border-radius);background:var(--btn-bg);color:var(--btn-text);font-size:var(--ac-field-font-size);font-weight:500;cursor:pointer;text-transform:capitalize;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}.ac-component .c-btn i{line-height:inherit}.ac-component .c-btn span.btn-label{line-height:1}.ac-component .c-btn:hover,.ac-component .c-btn:active{background:var(--btn-hover-bg);border-color:var(--btn-hover-border)}.ac-component .c-btn:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(242,101,34,.12)}.ac-component .c-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ac-component .c-btn .c-btn-indicator{--padding-inline: 0.3125rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.325rem;padding:.0625rem var(--padding-inline);padding-right:calc(var(--padding-inline) + 1px);border-radius:999px;color:var(--btn-indicator-text);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600;background:var(--btn-indicator-bg)}.ac-component .c-btn-sm{padding:var(--ac-field-padding-sm);font-size:var(--ac-field-font-size-sm);border-radius:var(--ac-field-border-radius-sm)}.ac-component .c-btn-lg{padding:var(--ac-field-padding-lg);font-size:var(--ac-field-font-size-lg);border-radius:var(--ac-field-border-radius-lg)}.ac-component .c-btn-dark{--btn-color: var(--neutral-800);--btn-bg: var(--neutral-800);--btn-text: var(--neutral-0);--btn-hover-bg: var(--neutral-900);--btn-hover-border: var(--neutral-900);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-800)}.ac-component .c-btn-outline{--btn-bg: transparent;--btn-color: var(--neutral-300);--btn-text: var(--neutral-800);--btn-hover-bg: var(--neutral-800);--btn-hover-border: var(--neutral-500);--btn-indicator-bg: var(--neutral-100);--btn-indicator-text: var(--neutral-800)}.ac-component .c-btn-outline:hover,.ac-component .c-btn-outline:active{color:var(--neutral-0)}.ac-component .c-btn-primary{--btn-bg: var(--ac-color-primary);--btn-color: var(--ac-color-primary);--btn-hover-bg: color-mix(in srgb, var(--ac-color-primary) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-primary) 85%, black);--btn-text: var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-primary)}.ac-component .c-btn-success{--btn-color: var(--ac-color-success);--btn-bg: var(--ac-color-success);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-success) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-success) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-success)}.ac-component .c-btn-error{--btn-color: var(--ac-color-error);--btn-bg: var(--ac-color-error);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-error) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-error) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-error)}.ac-component .c-btn-warning{--btn-color: var(--ac-color-warning);--btn-bg: var(--ac-color-warning);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-warning) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-warning) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-warning)}.ac-component .c-btn-info{--btn-color: var(--ac-color-info);--btn-bg: var(--ac-color-info);--btn-text: var(--neutral-0);--btn-hover-bg: color-mix(in srgb, var(--ac-color-info) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-info) 85%, black);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--ac-color-info)}.ac-component .c-btn-outline.c-btn-success{--btn-bg: transparent;--btn-text: var(--ac-color-success);--btn-hover-bg: var(--ac-color-success);--btn-hover-border: var(--ac-color-success);--btn-indicator-bg: var(--ac-color-success);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-success:hover,.ac-component .c-btn-outline.c-btn-success:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-error{--btn-bg: transparent;--btn-text: var(--ac-color-error);--btn-hover-bg: var(--ac-color-error);--btn-hover-border: var(--ac-color-error);--btn-indicator-bg: var(--ac-color-error);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-error:hover,.ac-component .c-btn-outline.c-btn-error:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-warning{--btn-bg: transparent;--btn-text: var(--ac-color-warning);--btn-hover-bg: var(--ac-color-warning);--btn-hover-border: var(--ac-color-warning);--btn-indicator-bg: var(--ac-color-warning);--btn-indicator-text: var(--neutral-900)}.ac-component .c-btn-outline.c-btn-warning:hover,.ac-component .c-btn-outline.c-btn-warning:active{color:var(--neutral-900);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-info{--btn-bg: transparent;--btn-text: var(--ac-color-info);--btn-hover-bg: var(--ac-color-info);--btn-hover-border: var(--ac-color-info);--btn-indicator-bg: var(--ac-color-info);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-info:hover,.ac-component .c-btn-outline.c-btn-info:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .c-btn-outline.c-btn-dark{--btn-bg: transparent;--btn-color: var(--neutral-800);--btn-text: var(--neutral-800);--btn-hover-bg: var(--neutral-800);--btn-hover-border: var(--neutral-800);--btn-indicator-bg: var(--neutral-800);--btn-indicator-text: var(--neutral-0)}.ac-component .c-btn-outline.c-btn-dark:hover,.ac-component .c-btn-outline.c-btn-dark:active{color:var(--neutral-0);--btn-indicator-bg: var(--neutral-0);--btn-indicator-text: var(--neutral-700)}.ac-component .vf-checkbox-wrapper{display:flex;align-items:center;gap:.25rem}.ac-component .vf-input-field::placeholder{color:var(--ac-placeholder-color)}*,*::before,*::after{box-sizing:border-box}body{margin:0;padding:0}.ac-container{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden}.ac-container .data-list-section{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
1
+ @import"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css";@import"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/regular.min.css";:root{--ac-font-family: 'Geist', 'Segoe UI', system-ui, -apple-system, sans-serif;--ac-c-background-50: #f7f9f9;--ac-c-background-100: #eff3f3;--ac-c-neutral-0: #fff;--ac-c-neutral-50: #f2f4f4;--ac-c-neutral-100: #e5e9ea;--ac-c-neutral-150: #dae0e1;--ac-c-neutral-200: #cbd3d4;--ac-c-neutral-250: #bec8ca;--ac-c-neutral-300: #b0bdbf;--ac-c-neutral-400: #96a7a9;--ac-c-neutral-500: #7c9194;--ac-c-neutral-600: #637476;--ac-c-neutral-700: #4a5759;--ac-c-neutral-800: #323a3b;--ac-c-neutral-900: #1f2d2d;--ac-c-site-50: #ffebe1;--ac-c-site-100: #ffceb6;--ac-c-site-200: #f79d71;--ac-c-site-300: #f5844e;--ac-c-site-500: #f26522;--ac-c-site-600: #da5b1f;--ac-c-site-700: #c2511b;--ac-c-premium-50: #dfefef;--ac-c-premium-100: #cfe7e6;--ac-c-premium-200: #bfdfde;--ac-c-premium-300: #9ed0ce;--ac-c-premium-400: #7ec0bd;--ac-c-premium-500: #5eb0ad;--ac-c-premium-600: #4b8d8a;--ac-c-premium-700: #386a68;--ac-c-pulse-10: #e0d8f1;--ac-c-pulse-100: #a18ad5;--ac-c-pulse-400: #7250c0;--ac-c-pulse-500: #623cb9;--ac-color-primary: #146eb4;--ac-color-primary-rgb: 20, 110, 180;--ac-color-error: #d92d20;--ac-color-warning: #dc6803;--ac-color-success: #067647;--ac-color-success-rgb: 6, 118, 71;--ac-color-info: #1570ef;--ac-color-info-rgb: 21, 112, 239;--ac-color-text: var(--ac-c-neutral-800);--ac-color-darker-blue: #1246d4;--ac-color-lighter-blue: rgb(45 126 241);--ac-input-padding: 0.5rem;--ac-input-padding-sm: 0.3125rem;--ac-input-padding-lg: 0.75rem;--ac-field-padding: 0.5rem 0.75rem;--ac-field-padding-sm: 0.3125rem 0.625rem;--ac-field-padding-lg: 0.6875rem 1rem;--ac-field-font-size: 0.825rem;--ac-field-font-size-sm: 0.75rem;--ac-field-font-size-lg: 0.9375rem;--ac-field-border-radius: 0.5rem;--ac-field-border-radius-sm: 0.375rem;--ac-field-border-radius-lg: 0.625rem;--ac-dropdown-max-height: 17.5rem;--ac-section-bottom-margin: 1rem;--ac-placeholder-color: var(--ac-c-neutral-600)}@media(prefers-reduced-motion: no-preference){html{interpolate-size:allow-keywords}}.ac-component{font-family:var(--ac-font-family);letter-spacing:-0.18px;color:var(--ac-c-neutral-800);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}.ac-component.v-tooltip{background:var(--ac-c-neutral-800);font-family:var(--ac-font-family);color:var(--ac-c-neutral-0);font-size:.8125rem;font-weight:400;line-height:1.4;padding:var(--ac-field-padding);border-radius:.5rem;white-space:normal;width:max-content;box-shadow:0 2px 6px rgba(0,0,0,.12)}.ac-component{--vf-ring-color: var(--ac-color-primary);--vf-primary: var(--ac-color-primary);--vf-border-color-checked: var(--ac-color-primary)}.ac-component.is-font-small,.ac-component .is-font-small{font-size:.875rem}.ac-component.is-font-normal,.ac-component .is-font-normal{font-size:1rem}.ac-component.is-font-large,.ac-component .is-font-large{font-size:1.125rem}.ac-component img,.ac-component picture,.ac-component video,.ac-component canvas,.ac-component svg{display:block;max-width:100%}.ac-component input,.ac-component button,.ac-component textarea,.ac-component select{font-family:inherit;letter-spacing:inherit}.ac-component p,.ac-component h1,.ac-component h2,.ac-component h3,.ac-component h4,.ac-component h5,.ac-component h6{overflow-wrap:break-word}.ac-component *{margin:0}.ac-component .fa-tag,.ac-component .fa-arrow-rotate-right{transform:translateY(0.5px)}.ac-component .align-center-fix{transform:translateY(0.5px)}.ac-component hr.separator{border:none;border-top:1px solid var(--ac-c-neutral-200);margin:.5rem 0}.ac-component .lh-1{line-height:1}.ac-component .flex-center{display:flex;align-items:center}.ac-component .click-expand{--expand-size: 0.5rem}.ac-component .click-expand::after{content:"";position:absolute;inset:calc(-1*var(--expand-size))}.ac-component .m-0{margin:0 !important}.ac-component .mx-0{margin-left:0 !important;margin-right:0 !important}.ac-component .my-0{margin-top:0 !important;margin-bottom:0 !important}.ac-component .mt-0{margin-top:0 !important}.ac-component .mb-0{margin-bottom:0 !important}.ac-component .ml-0{margin-left:0 !important}.ac-component .mr-0{margin-right:0 !important}.ac-component .m-1{margin:.25rem !important}.ac-component .mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.ac-component .my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.ac-component .mt-1{margin-top:.25rem !important}.ac-component .mb-1{margin-bottom:.25rem !important}.ac-component .ml-1{margin-left:.25rem !important}.ac-component .mr-1{margin-right:.25rem !important}.ac-component .m-2{margin:.5rem !important}.ac-component .mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.ac-component .my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.ac-component .mt-2{margin-top:.5rem !important}.ac-component .mb-2{margin-bottom:.5rem !important}.ac-component .ml-2{margin-left:.5rem !important}.ac-component .mr-2{margin-right:.5rem !important}.ac-component .m-3{margin:1rem !important}.ac-component .mx-3{margin-left:1rem !important;margin-right:1rem !important}.ac-component .my-3{margin-top:1rem !important;margin-bottom:1rem !important}.ac-component .mt-3{margin-top:1rem !important}.ac-component .mb-3{margin-bottom:1rem !important}.ac-component .ml-3{margin-left:1rem !important}.ac-component .mr-3{margin-right:1rem !important}.ac-component .m-4{margin:1.5rem !important}.ac-component .mx-4{margin-left:1.5rem !important;margin-right:1.5rem !important}.ac-component .my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.ac-component .mt-4{margin-top:1.5rem !important}.ac-component .mb-4{margin-bottom:1.5rem !important}.ac-component .ml-4{margin-left:1.5rem !important}.ac-component .mr-4{margin-right:1.5rem !important}.ac-component .m-5{margin:3rem !important}.ac-component .mx-5{margin-left:3rem !important;margin-right:3rem !important}.ac-component .my-5{margin-top:3rem !important;margin-bottom:3rem !important}.ac-component .mt-5{margin-top:3rem !important}.ac-component .mb-5{margin-bottom:3rem !important}.ac-component .ml-5{margin-left:3rem !important}.ac-component .mr-5{margin-right:3rem !important}.ac-component .m-auto{margin:auto !important}.ac-component .mx-auto{margin-left:auto !important;margin-right:auto !important}.ac-component .my-auto{margin-top:auto !important;margin-bottom:auto !important}.ac-component .mt-auto{margin-top:auto !important}.ac-component .mb-auto{margin-bottom:auto !important}.ac-component .ml-auto{margin-left:auto !important}.ac-component .mr-auto{margin-right:auto !important}.ac-component .p-0{padding:0 !important}.ac-component .px-0{padding-left:0 !important;padding-right:0 !important}.ac-component .py-0{padding-top:0 !important;padding-bottom:0 !important}.ac-component .pt-0{padding-top:0 !important}.ac-component .pb-0{padding-bottom:0 !important}.ac-component .pl-0{padding-left:0 !important}.ac-component .pr-0{padding-right:0 !important}.ac-component .p-1{padding:.25rem !important}.ac-component .px-1{padding-left:.25rem !important;padding-right:.25rem !important}.ac-component .py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.ac-component .pt-1{padding-top:.25rem !important}.ac-component .pb-1{padding-bottom:.25rem !important}.ac-component .pl-1{padding-left:.25rem !important}.ac-component .pr-1{padding-right:.25rem !important}.ac-component .p-2{padding:.5rem !important}.ac-component .px-2{padding-left:.5rem !important;padding-right:.5rem !important}.ac-component .py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.ac-component .pt-2{padding-top:.5rem !important}.ac-component .pb-2{padding-bottom:.5rem !important}.ac-component .pl-2{padding-left:.5rem !important}.ac-component .pr-2{padding-right:.5rem !important}.ac-component .p-3{padding:1rem !important}.ac-component .px-3{padding-left:1rem !important;padding-right:1rem !important}.ac-component .py-3{padding-top:1rem !important;padding-bottom:1rem !important}.ac-component .pt-3{padding-top:1rem !important}.ac-component .pb-3{padding-bottom:1rem !important}.ac-component .pl-3{padding-left:1rem !important}.ac-component .pr-3{padding-right:1rem !important}.ac-component .p-4{padding:1.5rem !important}.ac-component .px-4{padding-left:1.5rem !important;padding-right:1.5rem !important}.ac-component .py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.ac-component .pt-4{padding-top:1.5rem !important}.ac-component .pb-4{padding-bottom:1.5rem !important}.ac-component .pl-4{padding-left:1.5rem !important}.ac-component .pr-4{padding-right:1.5rem !important}.ac-component .p-5{padding:3rem !important}.ac-component .px-5{padding-left:3rem !important;padding-right:3rem !important}.ac-component .py-5{padding-top:3rem !important;padding-bottom:3rem !important}.ac-component .pt-5{padding-top:3rem !important}.ac-component .pb-5{padding-bottom:3rem !important}.ac-component .pl-5{padding-left:3rem !important}.ac-component .pr-5{padding-right:3rem !important}.ac-component .gap-0{gap:0 !important}.ac-component .gap-1{gap:.25rem !important}.ac-component .gap-2{gap:.5rem !important}.ac-component .gap-3{gap:1rem !important}.ac-component .gap-4{gap:1.5rem !important}.ac-component .gap-5{gap:3rem !important}.ac-component .d-flex{display:flex !important}.ac-component .d-inline-flex{display:inline-flex !important}.ac-component .d-block{display:block !important}.ac-component .d-inline-block{display:inline-block !important}.ac-component .flex-wrap{flex-wrap:wrap}.ac-component .flex-column{flex-direction:column}.ac-component .text-center{text-align:center}.ac-component .w-100{width:100% !important}.ac-component .mw-100{max-width:100% !important}.ac-component .h-100{height:100% !important}.ac-component .mh-100{max-height:100% !important}.ac-component .pointer{cursor:pointer}.ac-component .nowrap{white-space:nowrap}.ac-component .align-items-center{align-items:center}.ac-component .text-primary,.ac-component .text-normal{color:var(--ac-c-neutral-800) !important}.ac-component .text-info{color:var(--ac-color-info) !important}.ac-component .text-success{color:var(--ac-color-success) !important}.ac-component .text-warning{color:var(--ac-color-warning) !important}.ac-component .text-error,.ac-component .text-danger{color:var(--ac-color-error) !important}.ac-component .lh-normal{line-height:normal !important}.ac-component .lh-1{line-height:1 !important}.ac-component .lh-inherit{line-height:inherit !important}.ac-component .hide,.ac-component .hidden{display:none !important}.ac-component .c-wrapper{position:relative}.ac-component .c-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-component .c-field-size{font-size:var(--ac-field-font-size);padding:var(--ac-field-padding)}.ac-component .c-field-size--sm,.ac-component .c-field-size--small{font-size:var(--ac-field-font-size-sm);padding:var(--ac-field-padding-sm)}.ac-component .c-field-size--lg,.ac-component .c-field-size--large{font-size:var(--ac-field-font-size-lg);padding:var(--ac-field-padding-lg)}.ac-component .c-type-color{--text-color: var(--ac-c-neutral-800);--hover-bg-color: var(--ac-c-neutral-100);--hover-text-color: var(--ac-c-neutral-800);color:var(--text-color)}.ac-component .c-type-color:hover{background-color:var(--hover-bg-color);color:var(--hover-text-color)}.ac-component .c-type-color--error{--text-color: var(--ac-color-error);--hover-bg-color: var(--ac-color-error);--hover-text-color: var(--ac-c-neutral-0)}.ac-component .c-type-color--success{--text-color: var(--ac-color-success);--hover-bg-color: var(--ac-color-success);--hover-text-color: var(--ac-c-neutral-0)}.ac-component .c-type-color--warning{--text-color: var(--ac-color-warning);--hover-bg-color: var(--ac-color-warning);--hover-text-color: var(--ac-c-neutral-0)}.ac-component .c-type-color--info{--text-color: var(--ac-color-info);--hover-bg-color: var(--ac-color-info);--hover-text-color: var(--ac-c-neutral-0)}.ac-component .c-type-color--dark{--text-color: var(--ac-c-neutral-0);--hover-bg-color: var(--ac-c-neutral-800);--hover-text-color: var(--ac-c-neutral-0)}.ac-component .c-chip{display:inline-flex;padding:0;border-radius:.5rem;background:var(--ac-c-neutral-100);color:var(--ac-c-neutral-700);font-size:.75rem;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-component .c-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:999px;background:var(--ac-c-neutral-200);color:var(--ac-c-neutral-700);font-family:var(--ac-font-family);font-size:.875em;font-weight:700;font-variant-numeric:tabular-nums}.ac-component .c-scroll{scrollbar-width:thin;scrollbar-color:var(--ac-c-neutral-300) rgba(0,0,0,0)}.ac-component .c-scroll::-webkit-scrollbar{width:.5rem;height:.5rem}.ac-component .c-scroll::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.ac-component .c-scroll::-webkit-scrollbar-thumb{background:var(--ac-c-neutral-300);border-radius:999px;border:2px solid rgba(0,0,0,0);background-clip:content-box;transition:background-color .15s}.ac-component .c-scroll::-webkit-scrollbar-thumb:hover{background:var(--ac-c-neutral-500);background-clip:content-box}.ac-component .c-scroll::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.ac-component .c-placeholder{flex:1;font-style:italic;min-width:0;padding:var(--ac-input-padding);color:var(--ac-placeholder-color);user-select:none}.ac-component .c-input{width:100%;font-family:inherit;letter-spacing:-0.36px;border:none;background:rgba(0,0,0,0);padding:var(--ac-input-padding);font-size:var(--ac-field-font-size);color:var(--ac-c-neutral-900)}.ac-component .c-input::placeholder{color:var(--ac-placeholder-color);font-style:italic}.ac-component .c-input:-webkit-autofill,.ac-component .c-input:-webkit-autofill:hover,.ac-component .c-input:-webkit-autofill:focus,.ac-component .c-input:-webkit-autofill:active{border-radius:inherit}.ac-component .c-input:focus,.ac-component .c-input:focus-within,.ac-component .c-input:focus-visible,.ac-component .c-focus:focus,.ac-component .c-focus:focus-within,.ac-component .c-focus:focus-visible{border-color:var(--ac-color-lighter-blue);outline:0}.ac-component .c-input-wrapper{position:relative;display:flex;flex-direction:column;gap:.25rem}.ac-component .c-textarea{resize:none}.ac-component .c-input-row{display:flex;align-items:center;font-family:inherit;border:1px solid var(--ac-c-neutral-200);border-radius:var(--ac-field-border-radius);background:var(--ac-c-neutral-0);font-size:var(--ac-field-font-size);color:var(--ac-c-neutral-900);transition:border-color .15s}.ac-component .c-input-row::placeholder{color:var(--ac-placeholder-color);font-style:italic}.ac-component .c-input-row--disabled{background:var(--ac-c-neutral-50);cursor:not-allowed}.ac-component .c-input-row:is(input,textarea){padding:var(--ac-input-padding)}.ac-component .c-input-row:hover{border-color:var(--ac-c-neutral-300)}.ac-component .c-input-row:focus-within,.ac-component .c-input-row:focus,.ac-component .c-input-row:focus-visible,.ac-component .c-input-row--focus{border-color:var(--ac-color-lighter-blue);box-shadow:0 0 0 2px rgba(21,112,239,.1)}.ac-component .c-input-row:focus-within:hover,.ac-component .c-input-row:focus:hover,.ac-component .c-input-row:focus-visible:hover,.ac-component .c-input-row--focus:hover{border-color:var(--ac-color-darker-blue)}.ac-component .c-input-row--sm{border-radius:var(--ac-field-border-radius-sm);font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--sm:is(input,textarea){padding:var(--ac-input-padding-sm)}.ac-component .c-input-row--sm .c-icon-btn{font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--sm .c-placeholder{font-size:var(--ac-field-font-size-sm);padding:var(--ac-input-padding-sm)}.ac-component .c-input-row--sm .c-input{padding:var(--ac-input-padding-sm);font-size:var(--ac-field-font-size-sm)}.ac-component .c-input-row--lg{border-radius:var(--ac-field-border-radius-lg);font-size:var(--ac-field-font-size-lg)}.ac-component .c-input-row--lg:is(input,textarea){padding:var(--ac-input-padding-lg)}.ac-component .c-input-row--lg .c-icon-btn{font-size:var(--ac-field-font-size-lg)}.ac-component .c-input-row--lg .c-placeholder{font-size:var(--ac-field-font-size-lg);padding:var(--ac-input-padding-lg)}.ac-component .c-input-row--lg .c-input{padding:var(--ac-input-padding-lg);font-size:var(--ac-field-font-size-lg)}.ac-component .c-icon-btn{display:flex;align-items:center;justify-content:center;border:none;background:rgba(0,0,0,0);cursor:pointer;transition:color .15s}.ac-component .c-icon-btn--clear{color:var(--ac-c-neutral-400);padding-left:0;padding-right:.25rem}.ac-component .c-icon-btn--clear:hover{color:var(--ac-color-error)}.ac-component .c-icon-btn--chevron{color:var(--ac-c-neutral-500);transition:transform .2s}.ac-component .c-icon-btn--chevron-open{transform:rotate(180deg)}.ac-component .c-icon-btn--calendar{font-size:.925rem;color:var(--ac-c-neutral-500);padding-inline:.375rem}.ac-component .c-icon-btn--calendar:hover{color:var(--ac-c-site-500)}.ac-component .c-icon-btn--hidden{visibility:hidden;pointer-events:none}.ac-component .c-dropdown{background:var(--ac-c-neutral-0);border:1px solid var(--ac-c-neutral-200);border-radius:var(--ac-field-border-radius);box-shadow:0 2px 12px rgba(0,0,0,.5);overflow:hidden}.ac-component .c-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-top:.25rem;padding:.5rem;border-top:1px solid var(--ac-c-neutral-100)}.ac-component .c-checkbox{display:inline-block;width:1rem;height:1rem;vertical-align:middle;position:relative;cursor:pointer;border:1.5px solid var(--ac-c-neutral-300);border-radius:.25rem;background:var(--ac-c-neutral-0);transition:border-color .15s,background-color .15s}.ac-component .c-checkbox:hover{border-color:var(--ac-color-info);background:var(--ac-c-premium-300)}.ac-component .c-checkbox::after{content:"";position:absolute;top:50%;left:50%;width:.3rem;height:.55rem;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%, -60%) rotate(45deg);opacity:0}.ac-component .c-checkbox--checked,.ac-component .c-checkbox:checked{border-color:var(--ac-color-info);background:var(--ac-color-info)}.ac-component .c-checkbox--checked::after,.ac-component .c-checkbox:checked::after{opacity:1}.ac-component .c-checkbox--checked:hover,.ac-component .c-checkbox:checked:hover{background:var(--ac-c-premium-300)}.ac-component .c-checkbox--disabled,.ac-component .c-checkbox:disabled{opacity:.5;cursor:not-allowed}.ac-component input.c-checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;margin:0}.ac-component .c-checkbox-wrapper{display:inline-flex;align-items:center;line-height:1}.ac-component .c-checkbox-wrapper .c-checkbox-inner{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer}.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox{border-color:var(--ac-color-primary);background:rgba(var(--ac-color-primary-rgb), 0.2)}.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox:checked,.ac-component .c-checkbox-wrapper .c-checkbox-inner:hover .c-checkbox--checked{background:var(--ac-color-darker-blue)}.ac-component .c-label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ac-c-neutral-600)}.ac-component .c-label--on-border{position:absolute;top:-0.5lh;left:.5rem;padding:0 .125rem;font-size:.7rem;background:var(--ac-c-neutral-0);text-transform:none}.ac-component .c-btn-group{display:inline-flex;border-radius:var(--ac-field-border-radius);gap:0 !important;flex-wrap:nowrap !important}.ac-component .c-btn-group>.c-btn{border-radius:0}.ac-component .c-btn-group>*>.c-btn{border-radius:0}.ac-component .c-btn-group>.c-btn:not(:last-child),.ac-component .c-btn-group>*:not(:last-child)>.c-btn{border-right-width:0}.ac-component .c-btn-group>.c-btn:first-child,.ac-component .c-btn-group>*:first-child>.c-btn{border-top-left-radius:var(--ac-field-border-radius);border-bottom-left-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group>.c-btn:last-child,.ac-component .c-btn-group>*:last-child>.c-btn{border-top-right-radius:var(--ac-field-border-radius);border-bottom-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical{display:inline-flex;flex-direction:column;border-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical>.c-btn{border-radius:0;width:100%}.ac-component .c-btn-group-vertical>*>.c-btn{border-radius:0;width:100%}.ac-component .c-btn-group-vertical>.c-btn:not(:last-child),.ac-component .c-btn-group-vertical>*:not(:last-child)>.c-btn{border-bottom-width:0}.ac-component .c-btn-group-vertical>.c-btn:first-child,.ac-component .c-btn-group-vertical>*:first-child>.c-btn{border-top-left-radius:var(--ac-field-border-radius);border-top-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn-group-vertical>.c-btn:last-child,.ac-component .c-btn-group-vertical>*:last-child>.c-btn{border-bottom-left-radius:var(--ac-field-border-radius);border-bottom-right-radius:var(--ac-field-border-radius)}.ac-component .c-btn{--btn-color: var(--ac-c-neutral-200);--btn-bg: var(--ac-background-50);--btn-text: var(--ac-c-neutral-800);--btn-hover-bg: var(--ac-c-neutral-100);--btn-hover-border: var(--ac-c-neutral-300);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-c-neutral-700);font-family:var(--ac-font-family);letter-spacing:-0.18px;display:inline-flex;align-items:center;gap:.375em;padding:var(--ac-field-padding);border:1px solid var(--btn-color);border-radius:var(--ac-field-border-radius);background:var(--btn-bg);color:var(--btn-text);font-size:var(--ac-field-font-size);font-weight:500;cursor:pointer;text-transform:capitalize;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}.ac-component .c-btn i{line-height:inherit}.ac-component .c-btn span.btn-label{line-height:1}.ac-component .c-btn:hover,.ac-component .c-btn:active{background:var(--btn-hover-bg);border-color:var(--btn-hover-border)}.ac-component .c-btn:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(242,101,34,.12)}.ac-component .c-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ac-component .c-btn .c-btn-indicator{--padding-inline: 0.3125rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.325rem;padding:.0625rem var(--padding-inline);padding-right:calc(var(--padding-inline) + 1px);border-radius:999px;color:var(--btn-indicator-text);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600;background:var(--btn-indicator-bg)}.ac-component .c-btn-sm{padding:var(--ac-field-padding-sm);font-size:var(--ac-field-font-size-sm);border-radius:var(--ac-field-border-radius-sm)}.ac-component .c-btn-lg{padding:var(--ac-field-padding-lg);font-size:var(--ac-field-font-size-lg);border-radius:var(--ac-field-border-radius-lg)}.ac-component .c-btn-dark{--btn-color: var(--ac-c-neutral-800);--btn-bg: var(--ac-c-neutral-800);--btn-text: var(--ac-c-neutral-0);--btn-hover-bg: var(--ac-c-neutral-900);--btn-hover-border: var(--ac-c-neutral-900);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-c-neutral-800)}.ac-component .c-btn-outline{--btn-bg: transparent;--btn-color: var(--ac-c-neutral-300);--btn-text: var(--ac-c-neutral-800);--btn-hover-bg: var(--ac-c-neutral-800);--btn-hover-border: var(--ac-c-neutral-500);--btn-indicator-bg: var(--ac-c-neutral-100);--btn-indicator-text: var(--ac-c-neutral-800)}.ac-component .c-btn-outline:hover,.ac-component .c-btn-outline:active{color:var(--ac-c-neutral-0)}.ac-component .c-btn-primary{--btn-bg: var(--ac-color-primary);--btn-color: var(--ac-color-primary);--btn-hover-bg: color-mix(in srgb, var(--ac-color-primary) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-primary) 85%, black);--btn-text: var(--ac-c-neutral-0);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-color-primary)}.ac-component .c-btn-success{--btn-color: var(--ac-color-success);--btn-bg: var(--ac-color-success);--btn-text: #fff;--btn-hover-bg: color-mix(in srgb, var(--ac-color-success) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-success) 85%, black);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-color-success)}.ac-component .c-btn-error{--btn-color: var(--ac-color-error);--btn-bg: var(--ac-color-error);--btn-text: #fff;--btn-hover-bg: color-mix(in srgb, var(--ac-color-error) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-error) 85%, black);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-color-error)}.ac-component .c-btn-warning{--btn-color: var(--ac-color-warning);--btn-bg: var(--ac-color-warning);--btn-text: #fff;--btn-hover-bg: color-mix(in srgb, var(--ac-color-warning) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-warning) 85%, black);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-color-warning)}.ac-component .c-btn-info{--btn-color: var(--ac-color-info);--btn-bg: var(--ac-color-info);--btn-text: #fff;--btn-hover-bg: color-mix(in srgb, var(--ac-color-info) 85%, black);--btn-hover-border: color-mix(in srgb, var(--ac-color-info) 85%, black);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-color-info)}.ac-component .c-btn-outline.c-btn-primary{--btn-bg: transparent;--btn-text: var(--ac-color-primary);--btn-hover-bg: var(--ac-color-primary);--btn-hover-border: var(--ac-color-primary);--btn-indicator-bg: var(--ac-color-primary);--btn-indicator-text: var(--ac-c-neutral-0)}.ac-component .c-btn-outline.c-btn-primary:hover,.ac-component .c-btn-outline.c-btn-primary:active{color:var(--ac-c-neutral-0);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-c-neutral-700)}.ac-component .c-btn-outline.c-btn-success{--btn-bg: transparent;--btn-text: var(--ac-color-success);--btn-hover-bg: var(--ac-color-success);--btn-hover-border: var(--ac-color-success);--btn-indicator-bg: var(--ac-color-success);--btn-indicator-text: var(--ac-c-neutral-0)}.ac-component .c-btn-outline.c-btn-success:hover,.ac-component .c-btn-outline.c-btn-success:active{color:var(--ac-c-neutral-0);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-c-neutral-700)}.ac-component .c-btn-outline.c-btn-error{--btn-bg: transparent;--btn-text: var(--ac-color-error);--btn-hover-bg: var(--ac-color-error);--btn-hover-border: var(--ac-color-error);--btn-indicator-bg: var(--ac-color-error);--btn-indicator-text: var(--ac-c-neutral-0)}.ac-component .c-btn-outline.c-btn-error:hover,.ac-component .c-btn-outline.c-btn-error:active{color:var(--ac-c-neutral-0);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-c-neutral-700)}.ac-component .c-btn-outline.c-btn-warning{--btn-bg: transparent;--btn-text: var(--ac-color-warning);--btn-hover-bg: var(--ac-color-warning);--btn-hover-border: var(--ac-color-warning);--btn-indicator-bg: var(--ac-color-warning);--btn-indicator-text: var(--ac-c-neutral-900)}.ac-component .c-btn-outline.c-btn-warning:hover,.ac-component .c-btn-outline.c-btn-warning:active{color:var(--ac-c-neutral-900);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-c-neutral-700)}.ac-component .c-btn-outline.c-btn-info{--btn-bg: transparent;--btn-text: var(--ac-color-info);--btn-hover-bg: var(--ac-color-info);--btn-hover-border: var(--ac-color-info);--btn-indicator-bg: var(--ac-color-info);--btn-indicator-text: var(--ac-c-neutral-0)}.ac-component .c-btn-outline.c-btn-info:hover,.ac-component .c-btn-outline.c-btn-info:active{color:var(--ac-c-neutral-0);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-c-neutral-700)}.ac-component .c-btn-outline.c-btn-dark{--btn-bg: transparent;--btn-color: var(--ac-c-neutral-800);--btn-text: var(--ac-c-neutral-800);--btn-hover-bg: var(--ac-c-neutral-800);--btn-hover-border: var(--ac-c-neutral-800);--btn-indicator-bg: var(--ac-c-neutral-800);--btn-indicator-text: var(--ac-c-neutral-0)}.ac-component .c-btn-outline.c-btn-dark:hover,.ac-component .c-btn-outline.c-btn-dark:active{color:var(--ac-c-neutral-0);--btn-indicator-bg: var(--ac-c-neutral-0);--btn-indicator-text: var(--ac-c-neutral-700)}.ac-component .vf-checkbox-wrapper{display:flex;align-items:center;gap:.25rem}.ac-component .vf-input-field::placeholder{color:var(--ac-placeholder-color)}*,*::before,*::after{box-sizing:border-box}body{margin:0;padding:0}.ac-container{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden}.ac-container .data-list-section{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
@@ -17,6 +17,14 @@ export declare class ArticleEditorService {
17
17
  name: string;
18
18
  }, undefined, WidgetDetailsResponse<PresenceWidgetConfig>>;
19
19
  sites: HttpRequest<undefined, undefined, undefined, Site[]>;
20
+ getMeta: HttpRequest<{
21
+ url: string;
22
+ }, undefined, undefined, {
23
+ url: string;
24
+ title: string;
25
+ lead: string;
26
+ imageUrl: string;
27
+ }>;
20
28
  authorsSearch: HttpRequest<SearchAuthorsPayload, undefined, undefined, SearchAuthorsResult>;
21
29
  authorsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, AuthorDetails[]>;
22
30
  articleSeriesSearch: HttpRequest<SearchEntityPayload, undefined, undefined, SearchArticleSeriesResult>;
@@ -1 +1 @@
1
- .ac-component .dp-calendar{background:var(--neutral-0);-webkit-user-select:none;user-select:none;border-radius:.75rem;padding:1rem;box-shadow:0 4px 24px #0000001f,0 2px 8px #00000014}.ac-component .dp-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.ac-component .dp-header-labels{align-items:center;gap:1rem;display:flex}.ac-component .dp-header-labels--item{color:var(--neutral-900);cursor:pointer;text-transform:capitalize;font-size:.875rem;font-weight:500}.ac-component .dp-header-labels--item:hover{color:var(--site-500)}.ac-component .dp-nav-btn{cursor:pointer;width:2.25rem;height:2.25rem;color:var(--neutral-600);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.ac-component .dp-nav-btn:hover{background:var(--neutral-150);color:var(--neutral-900)}.ac-component .dp-nav-btn--spacer{visibility:hidden;pointer-events:none}.ac-component .dp-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:.25rem;display:grid}.ac-component .dp-weekdays--has-week{grid-template-columns:1.225rem repeat(7,1fr)}.ac-component .dp-weekday{text-align:center;color:var(--neutral-500);padding:.25rem 0;font-size:.75rem;font-weight:500}.ac-component .dp-weekday--week{color:var(--neutral-400)}.ac-component .dp-week-number{color:var(--neutral-500);font-variant-numeric:tabular-nums;align-items:center;margin:0 auto;font-size:.6875rem;font-weight:500;display:flex}.ac-component .dp-week-number--other{color:var(--neutral-300)}.ac-component .dp-body{flex-direction:column;min-height:14.75rem;display:flex}.ac-component .dp-picker-grid{gap:.25rem;min-height:0;padding:.25rem 0;display:grid}.ac-component .dp-picker-grid--3col{grid-template-columns:repeat(3,1fr)}.ac-component .dp-picker-grid--4col{grid-template-columns:repeat(4,1fr)}.ac-component .dp-picker-grid--7col{grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:2px;padding:0}.ac-component .dp-picker-grid--8col{grid-template-columns:1.125rem repeat(7,1fr);grid-auto-flow:dense;grid-auto-rows:1fr;gap:2px;padding:0}.ac-component .dp-picker-grid--scrollable{max-height:100%;overflow-y:auto}.ac-component .dp-picker-grid.dp-month-picker{gap:1rem .5rem}.ac-component .dp-picker-item{height:2.25rem;color:var(--neutral-900);cursor:pointer;text-transform:capitalize;background:0 0;border:none;border-radius:.5rem;justify-content:center;align-items:center;font-size:.8125rem;transition:background-color .15s,color .15s;display:flex}.ac-component .dp-picker-item:hover:not(.dp-picker-item--disabled):not(.dp-picker-item--selected){background:var(--neutral-100)}.ac-component .dp-picker-item--circle{text-transform:none;width:2.5rem;height:2.5rem;font-family:var(--ac-font-family);border-radius:50%;margin:0 auto}.ac-component .dp-picker-item--selected{background:var(--site-500);color:var(--neutral-0);font-weight:600}.ac-component .dp-picker-item--selected:hover{background:var(--site-500)}.ac-component .dp-picker-item--today{color:var(--premium-500);border:1px solid var(--premium-500);font-weight:600}.ac-component .dp-picker-item--today.dp-picker-item--selected{border-color:var(--site-500);color:var(--neutral-0)}.ac-component .dp-picker-item--other{color:var(--neutral-300)}.ac-component .dp-picker-item--disabled{color:var(--neutral-150);cursor:not-allowed}.ac-component .dp-picker-item--weekend:not(.dp-picker-item--selected):not(.dp-picker-item--disabled):not(.dp-picker-item--other){color:var(--ac-color-error)}.ac-component .dp-picker-item--weekend.dp-picker-item--other:not(.dp-picker-item--disabled){color:#e1313166}.ac-component .dp-time-label{color:var(--neutral-600);font-size:.8125rem;font-weight:500}.ac-component .dp-time-inputs{align-items:center;gap:.25rem;display:flex}.ac-component .dp-time-sep{color:var(--neutral-600);font-size:1rem;font-weight:600}.ac-component .dp-time-input{text-align:center;border:1px solid var(--neutral-200);width:2.75rem;height:2.25rem;color:var(--neutral-900);appearance:textfield;border-radius:.5rem;outline:none;font-size:.875rem;font-weight:500;transition:border-color .15s}.ac-component .dp-time-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ac-component .dp-time-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
1
+ .ac-component .dp-calendar{background:var(--ac-c-neutral-0);-webkit-user-select:none;user-select:none;border-radius:.75rem;padding:1rem;box-shadow:0 4px 24px #0000001f,0 2px 8px #00000014}.ac-component .dp-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.ac-component .dp-header-labels{align-items:center;gap:1rem;display:flex}.ac-component .dp-header-labels--item{color:var(--ac-c-neutral-900);cursor:pointer;text-transform:capitalize;font-size:.875rem;font-weight:500}.ac-component .dp-header-labels--item:hover{color:var(--ac-c-site-500)}.ac-component .dp-nav-btn{cursor:pointer;width:2.25rem;height:2.25rem;color:var(--ac-c-neutral-600);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.ac-component .dp-nav-btn:hover{background:var(--ac-c-neutral-150);color:var(--ac-c-neutral-900)}.ac-component .dp-nav-btn--spacer{visibility:hidden;pointer-events:none}.ac-component .dp-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:.25rem;display:grid}.ac-component .dp-weekdays--has-week{grid-template-columns:1.225rem repeat(7,1fr)}.ac-component .dp-weekday{text-align:center;color:var(--ac-c-neutral-500);padding:.25rem 0;font-size:.75rem;font-weight:500}.ac-component .dp-weekday--week{color:var(--ac-c-neutral-400)}.ac-component .dp-week-number{color:var(--ac-c-neutral-500);font-variant-numeric:tabular-nums;align-items:center;margin:0 auto;font-size:.6875rem;font-weight:500;display:flex}.ac-component .dp-week-number--other{color:var(--ac-c-neutral-300)}.ac-component .dp-body{flex-direction:column;min-height:14.75rem;display:flex}.ac-component .dp-picker-grid{gap:.25rem;min-height:0;padding:.25rem 0;display:grid}.ac-component .dp-picker-grid--3col{grid-template-columns:repeat(3,1fr)}.ac-component .dp-picker-grid--4col{grid-template-columns:repeat(4,1fr)}.ac-component .dp-picker-grid--7col{grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:2px;padding:0}.ac-component .dp-picker-grid--8col{grid-template-columns:1.125rem repeat(7,1fr);grid-auto-flow:dense;grid-auto-rows:1fr;gap:2px;padding:0}.ac-component .dp-picker-grid--scrollable{max-height:100%;overflow-y:auto}.ac-component .dp-picker-grid.dp-month-picker{gap:1rem .5rem}.ac-component .dp-picker-item{height:2.25rem;color:var(--ac-c-neutral-900);cursor:pointer;text-transform:capitalize;background:0 0;border:none;border-radius:.5rem;justify-content:center;align-items:center;font-size:.8125rem;transition:background-color .15s,color .15s;display:flex}.ac-component .dp-picker-item:hover:not(.dp-picker-item--disabled):not(.dp-picker-item--selected){background:var(--ac-c-neutral-100)}.ac-component .dp-picker-item--circle{text-transform:none;width:2.5rem;height:2.5rem;font-family:var(--ac-font-family);border-radius:50%;margin:0 auto}.ac-component .dp-picker-item--selected{background:var(--ac-c-site-500);color:var(--ac-c-neutral-0);font-weight:600}.ac-component .dp-picker-item--selected:hover{background:var(--ac-c-site-500)}.ac-component .dp-picker-item--today{color:var(--ac-c-premium-500);border:1px solid var(--ac-c-premium-500);font-weight:600}.ac-component .dp-picker-item--today.dp-picker-item--selected{border-color:var(--ac-c-site-500);color:var(--ac-c-neutral-0)}.ac-component .dp-picker-item--other{color:var(--ac-c-neutral-300)}.ac-component .dp-picker-item--disabled{color:var(--ac-c-neutral-150);cursor:not-allowed}.ac-component .dp-picker-item--weekend:not(.dp-picker-item--selected):not(.dp-picker-item--disabled):not(.dp-picker-item--other){color:var(--ac-color-error)}.ac-component .dp-picker-item--weekend.dp-picker-item--other:not(.dp-picker-item--disabled){color:#e1313166}.ac-component .dp-time-label{color:var(--ac-c-neutral-600);font-size:.8125rem;font-weight:500}.ac-component .dp-time-inputs{align-items:center;gap:.25rem;display:flex}.ac-component .dp-time-sep{color:var(--ac-c-neutral-600);font-size:1rem;font-weight:600}.ac-component .dp-time-input{text-align:center;border:1px solid var(--ac-c-neutral-200);width:2.75rem;height:2.25rem;color:var(--ac-c-neutral-900);appearance:textfield;border-radius:.5rem;outline:none;font-size:.875rem;font-weight:500;transition:border-color .15s}.ac-component .dp-time-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ac-component .dp-time-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
@@ -1 +1 @@
1
- .ac-component .c-copy-btn{color:var(--neutral-500);cursor:pointer;border-radius:8px;padding:.5rem;font-size:.8rem;transition:opacity .15s,color .2s,box-shadow .3s}.ac-component .c-copy-btn:hover{color:var(--neutral-800)}.ac-component .c-copy-btn--copied{animation:.25s ease-out c-copy-pop;box-shadow:0 0 10px #06764766,0 0 3px #06764740;color:var(--ac-color-success)!important;opacity:1!important}@keyframes c-copy-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}
1
+ .ac-component .c-copy-btn{color:var(--ac-c-neutral-500);cursor:pointer;border-radius:8px;padding:.5rem;font-size:.8rem;transition:opacity .15s,color .2s,box-shadow .3s}.ac-component .c-copy-btn:hover{color:var(--ac-c-neutral-800)}.ac-component .c-copy-btn--copied{animation:.25s ease-out c-copy-pop;box-shadow:0 0 10px #06764766,0 0 3px #06764740;color:var(--ac-color-success)!important;opacity:1!important}@keyframes c-copy-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}