└── src ├── web └── assets │ ├── pluginstore │ ├── tests │ │ ├── .gitignore │ │ ├── .playwright │ │ │ ├── authentication │ │ │ │ └── .gitignore │ │ │ └── utils.js │ │ └── cart.spec.js │ ├── dist │ │ └── manifest.json │ ├── postcss.config.js │ ├── tailwind.config.js │ ├── .env.example │ └── .eslintrc.js │ ├── admintable │ ├── .gitignore │ ├── dist │ │ ├── manifest.json │ │ └── js │ │ │ └── app.js.LICENSE.txt │ ├── .env.example │ └── webpack.config.js │ ├── punycode │ ├── dist │ │ └── punycode.js.LICENSE.txt │ └── webpack.config.js │ ├── d3 │ └── dist │ │ ├── d3-format │ │ └── locale │ │ │ ├── ca-ES.json │ │ │ ├── cs-CZ.json │ │ │ ├── de-DE.json │ │ │ ├── en-CA.json │ │ │ ├── en-GB.json │ │ │ ├── en-IE.json │ │ │ ├── en-US.json │ │ │ ├── es-ES.json │ │ │ ├── es-MX.json │ │ │ ├── fi-FI.json │ │ │ ├── fr-CA.json │ │ │ ├── he-IL.json │ │ │ ├── hu-HU.json │ │ │ ├── it-IT.json │ │ │ ├── ja-JP.json │ │ │ ├── ko-KR.json │ │ │ ├── nl-NL.json │ │ │ ├── pl-PL.json │ │ │ ├── pt-BR.json │ │ │ ├── sv-SE.json │ │ │ ├── uk-UA.json │ │ │ ├── zh-CN.json │ │ │ ├── ar-DZ.json │ │ │ ├── ar-EH.json │ │ │ ├── ar-LY.json │ │ │ ├── ar-MA.json │ │ │ ├── ar-TN.json │ │ │ ├── de-CH.json │ │ │ ├── mk-MK.json │ │ │ ├── ru-RU.json │ │ │ ├── es-BO.json │ │ │ ├── fr-FR.json │ │ │ ├── en-IN.json │ │ │ ├── ar-001.json │ │ │ ├── ar-AE.json │ │ │ ├── ar-BH.json │ │ │ ├── ar-DJ.json │ │ │ ├── ar-EG.json │ │ │ ├── ar-ER.json │ │ │ ├── ar-IL.json │ │ │ ├── ar-IQ.json │ │ │ ├── ar-JO.json │ │ │ ├── ar-KW.json │ │ │ ├── ar-LB.json │ │ │ ├── ar-MR.json │ │ │ ├── ar-OM.json │ │ │ ├── ar-PS.json │ │ │ ├── ar-QA.json │ │ │ ├── ar-SA.json │ │ │ ├── ar-SD.json │ │ │ ├── ar-SO.json │ │ │ ├── ar-SS.json │ │ │ ├── ar-SY.json │ │ │ ├── ar-YE.json │ │ │ ├── ar-KM.json │ │ │ └── ar-TD.json │ │ └── d3-time-format │ │ └── locale │ │ ├── ja-JP.json │ │ ├── ko-KR.json │ │ ├── zh-TW.json │ │ ├── zh-CN.json │ │ ├── he-IL.json │ │ ├── tr-TR.json │ │ ├── fr-CA.json │ │ ├── cs-CZ.json │ │ ├── da-DK.json │ │ ├── es-MX.json │ │ ├── de-CH.json │ │ ├── de-DE.json │ │ ├── en-CA.json │ │ ├── en-GB.json │ │ ├── en-US.json │ │ ├── mk-MK.json │ │ ├── nb-NO.json │ │ ├── nl-NL.json │ │ ├── ru-RU.json │ │ ├── sv-SE.json │ │ ├── pt-BR.json │ │ ├── es-ES.json │ │ ├── it-IT.json │ │ ├── uk-UA.json │ │ ├── ar-EG.json │ │ ├── ca-ES.json │ │ ├── fa-IR.json │ │ ├── fr-FR.json │ │ ├── hu-HU.json │ │ ├── pl-PL.json │ │ └── fi-FI.json │ ├── cp │ └── dist │ │ ├── images │ │ ├── prg.jpg │ │ ├── craft.png │ │ ├── branch.png │ │ ├── craft_2x.png │ │ ├── success.png │ │ ├── branch_2x.png │ │ ├── branch_rtl.png │ │ ├── hudtip_top.png │ │ ├── success_2x.png │ │ ├── branch_rtl_2x.png │ │ ├── hudtip_bottom.png │ │ ├── hudtip_left.png │ │ ├── hudtip_right.png │ │ ├── hudtip_top_2x.png │ │ ├── icons │ │ │ ├── favicon.ico │ │ │ └── apple-touch-icon.png │ │ ├── listview_sort.png │ │ ├── resizehandle.png │ │ ├── temp_folder.png │ │ ├── welcome_logo.png │ │ ├── hudtip_left_2x.png │ │ ├── hudtip_right_2x.png │ │ ├── resizehandle_2x.png │ │ ├── welcome_logo_2x.png │ │ ├── hudtip_bottom_2x.png │ │ ├── hudtip_bottom_gray.png │ │ ├── listview_sort_2x.png │ │ ├── resizehandle_rtl.png │ │ ├── resizehandle_rtl_2x.png │ │ └── hudtip_bottom_gray_2x.png │ │ ├── fonts │ │ ├── Craft.ttf │ │ └── Craft.woff │ │ └── cp.js.LICENSE.txt │ ├── fabric │ ├── dist │ │ └── fabric.js.LICENSE.txt │ ├── webpack.config.js │ └── FabricAsset.php │ ├── queuemanager │ ├── dist │ │ ├── manifest.json │ │ └── queue-manager.js.LICENSE.txt │ └── webpack.config.js │ ├── installer │ ├── dist │ │ └── images │ │ │ ├── db.png │ │ │ ├── site.png │ │ │ ├── account.png │ │ │ └── installer-bg.png │ └── webpack.config.js │ ├── updater │ ├── dist │ │ └── images │ │ │ ├── error.png │ │ │ ├── error_2x.png │ │ │ ├── success.png │ │ │ └── success_2x.png │ └── webpack.config.js │ ├── updates │ ├── dist │ │ └── images │ │ │ ├── error.png │ │ │ ├── error_2x.png │ │ │ ├── success.png │ │ │ └── success_2x.png │ └── webpack.config.js │ ├── upgrade │ ├── dist │ │ └── images │ │ │ ├── error.png │ │ │ ├── error_2x.png │ │ │ ├── success.png │ │ │ └── success_2x.png │ └── webpack.config.js │ ├── routes │ ├── dist │ │ └── images │ │ │ ├── route-bg.png │ │ │ ├── route-bg_2x.png │ │ │ ├── route-bg_rtl.png │ │ │ └── route-bg_rtl_2x.png │ └── webpack.config.js │ ├── edittransform │ ├── dist │ │ └── images │ │ │ ├── crop.jpg │ │ │ ├── fit.jpg │ │ │ ├── crop_2x.jpg │ │ │ ├── fit_2x.jpg │ │ │ ├── stretch.jpg │ │ │ └── stretch_2x.jpg │ └── webpack.config.js │ ├── pluginstoreoauth │ ├── dist │ │ ├── images │ │ │ ├── error.png │ │ │ ├── error_2x.png │ │ │ ├── success.png │ │ │ └── success_2x.png │ │ └── parseFragmentString.js │ └── webpack.config.js │ ├── garnish │ └── dist │ │ └── garnish.js.LICENSE.txt │ ├── yii2pjax │ ├── dist │ │ └── jquery.pjax.js.LICENSE.txt │ └── webpack.config.js │ ├── deprecationerrors │ ├── dist │ │ └── css │ │ │ ├── deprecator.css │ │ │ └── deprecator.css.map │ └── webpack.config.js │ ├── edituser │ ├── dist │ │ └── css │ │ │ └── AccountSettingsForm.css │ └── webpack.config.js │ ├── tailwindreset │ ├── dist │ │ └── css │ │ │ └── tailwind_reset.css.map │ ├── postcss.config.js │ ├── webpack.config.js │ └── tailwind.config.js │ ├── elementresizedetector │ ├── dist │ │ └── element-resize-detector.js.LICENSE.txt │ └── webpack.config.js │ ├── vue │ ├── dist │ │ └── vue.js.LICENSE.txt │ └── VueAsset.php │ ├── inputmask │ └── dist │ │ └── jquery.inputmask.bundle.js.LICENSE.txt │ ├── velocity │ ├── dist │ │ └── velocity.js.LICENSE.txt │ ├── webpack.config.js │ └── VelocityAsset.php │ ├── login │ └── webpack.config.js │ ├── money │ └── webpack.config.js │ ├── sites │ └── webpack.config.js │ ├── fields │ └── webpack.config.js │ ├── feed │ └── webpack.config.js │ ├── generalsettings │ └── webpack.config.js │ ├── graphiql │ └── webpack.config.js │ ├── matrix │ └── webpack.config.js │ ├── utilities │ └── webpack.config.js │ ├── editsection │ └── webpack.config.js │ ├── newusers │ └── webpack.config.js │ ├── plugins │ └── webpack.config.js │ ├── dbbackup │ └── webpack.config.js │ ├── fieldsettings │ └── webpack.config.js │ ├── quickpost │ └── webpack.config.js │ ├── updateswidget │ └── webpack.config.js │ ├── systemmessages │ └── webpack.config.js │ ├── userpermissions │ └── webpack.config.js │ ├── dashboard │ └── webpack.config.js │ ├── matrixsettings │ └── webpack.config.js │ ├── recententries │ └── webpack.config.js │ ├── tablesettings │ └── webpack.config.js │ ├── findreplace │ └── webpack.config.js │ ├── clearcaches │ └── webpack.config.js │ ├── conditionbuilder │ ├── webpack.config.js │ └── dist │ │ └── ConditionBuilder.js │ ├── selectize │ └── webpack.config.js │ ├── focalpoint │ ├── dist │ │ └── css │ │ │ └── FocalPoint.css │ └── webpack.config.js │ ├── assetindexes │ └── webpack.config.js │ ├── axios │ ├── webpack.config.js │ └── AxiosAsset.php │ ├── jquery │ ├── webpack.config.js │ └── dist │ │ └── jquery.js.LICENSE.txt │ ├── xregexp │ ├── webpack.config.js │ └── XregexpAsset.php │ ├── focusvisible │ ├── webpack.config.js │ └── FocusVisibleAsset.php │ ├── picturefill │ ├── webpack.config.js │ └── PicturefillAsset.php │ ├── fileupload │ └── webpack.config.js │ ├── timepicker │ └── webpack.config.js │ ├── jquerypayment │ ├── webpack.config.js │ └── JqueryPaymentAsset.php │ ├── craftsupport │ └── webpack.config.js │ ├── htmx │ └── webpack.config.js │ ├── iframeresizer │ └── IframeResizerAsset.php │ ├── jquerytouchevents │ ├── JqueryTouchEventsAsset.php │ └── webpack.config.js │ └── datepickeri18n │ └── dist │ └── datepicker-ko.js ├── templates ├── _elements │ ├── element.twig │ ├── thumbsview │ │ ├── container.twig │ │ └── elements.twig │ ├── indexcontainer.twig │ ├── structureview │ │ └── container.twig │ └── modalbody.twig ├── plugin-store │ ├── _layouts │ │ └── cp.twig │ └── _special │ │ └── oauth │ │ ├── callback.twig │ │ └── modal-callback.twig ├── index.twig ├── settings │ ├── fields │ │ └── _type-settings.twig │ ├── general │ │ └── _images │ │ │ ├── icon.twig │ │ │ └── logo.twig │ └── plugins │ │ └── _settings.twig ├── _components │ ├── utilities │ │ ├── Updates.twig │ │ ├── Upgrade.html │ │ ├── QueueManager │ │ │ └── footer.twig │ │ ├── SystemMessages │ │ │ └── index.twig │ │ └── DbBackup.twig │ ├── widgets │ │ └── CraftSupport │ │ │ └── response.twig │ ├── fieldtypes │ │ └── Money │ │ │ └── input.twig │ ├── mailertransportadapters │ │ └── Sendmail │ │ │ └── settings.twig │ ├── elementactions │ │ └── SetStatus │ │ │ └── trigger.twig │ └── fs │ │ └── Local │ │ └── settings.twig ├── assets │ ├── _previews │ │ ├── no_preview.twig │ │ └── video.twig │ └── index.twig ├── _includes │ ├── forms │ │ ├── fieldLayoutDesigner.twig │ │ ├── timeZone.twig │ │ ├── password.twig │ │ ├── datetime.twig │ │ ├── hidden.twig │ │ ├── errorList.twig │ │ ├── file.twig │ │ ├── volume.twig │ │ └── fs.twig │ ├── fieldlayoutdesigner.twig │ ├── defaulticon.svg.twig │ ├── fields.twig │ └── nav.twig ├── error.twig ├── _special │ ├── updater.twig │ ├── install │ │ ├── installing.twig │ │ └── license.twig │ ├── email.twig │ ├── emailtaken.twig │ └── dbupdate.twig ├── 404.twig ├── 500.twig ├── 403.twig ├── 503.twig ├── 400.twig ├── categories │ └── _index.twig ├── tests │ └── js.twig ├── entries │ └── index.twig ├── graphql │ └── graphiql.twig ├── _layouts │ ├── components │ │ ├── alerts.twig │ │ ├── notifications.twig │ │ └── crumbs.twig │ └── message.twig └── users │ └── index.twig ├── test ├── internal │ └── example-test-suite │ │ ├── tests │ │ ├── _support │ │ │ ├── .gitignore │ │ │ └── Helper │ │ │ │ ├── Unit.php │ │ │ │ └── Functional.php │ │ ├── _craft │ │ │ ├── storage │ │ │ │ └── runtime │ │ │ │ │ └── .gitignore │ │ │ ├── config │ │ │ │ ├── routes.php │ │ │ │ ├── general.php │ │ │ │ ├── test.php │ │ │ │ └── db.php │ │ │ └── templates │ │ │ │ └── index.twig │ │ ├── unit.suite.yml │ │ ├── functional.suite.yml │ │ ├── .env.example.mysql │ │ ├── .env.example.pgsql │ │ ├── functional │ │ │ └── ExampleFunctionalCest.php │ │ └── unit │ │ │ └── ExampleUnitTest.php │ │ └── codeception.yml └── mockclasses │ └── TwigExtension.php ├── icons ├── play.svg ├── user.svg ├── c-debug.svg ├── craft-stack-exchange.svg ├── magnifying-glass.svg ├── shopping-cart.svg ├── bullhorn.svg ├── file.svg └── craft-partners.svg ├── config └── mimeTypes.php ├── views └── debug │ └── deprecated │ └── summary.php ├── gql └── handlers │ └── SiteId.php ├── events ├── ModelEvent.php ├── ElementStructureEvent.php ├── DefineRulesEvent.php ├── PopulateElementEvent.php ├── DefineFieldsEvent.php ├── RestoreEvent.php ├── UserEvent.php ├── MoveElementEvent.php ├── DefineValueEvent.php ├── DefineBehaviorsEvent.php ├── RebuildConfigEvent.php ├── RegisterUrlRulesEvent.php ├── ReorderSitesEvent.php ├── DefineEntryTypesEvent.php ├── DeleteSiteEvent.php ├── ErrorEvent.php ├── MutationPopulateElementEvent.php ├── RegisterCpAlertsEvent.php ├── RegisterGqlQueriesEvent.php ├── CancelableEvent.php ├── ExceptionEvent.php ├── RegisterAssetFileKindsEvent.php ├── RegisterCpNavItemsEvent.php ├── RegisterCpSettingsEvent.php ├── UserAssignGroupEvent.php ├── DeleteElementEvent.php ├── RegisterGqlDirectivesEvent.php ├── RegisterGqlMutationsEvent.php ├── ElementCriteriaEvent.php ├── FieldElementEvent.php ├── PluginEvent.php ├── RegisterComponentTypesEvent.php ├── RegisterUserPermissionsEvent.php ├── RegisterCacheOptionsEvent.php ├── DeleteTemplateCachesEvent.php ├── RegisterGqlArgumentHandlersEvent.php ├── ElementQueryEvent.php ├── RegisterElementSortOptionsEvent.php ├── SetElementRouteEvent.php ├── ElementContentEvent.php ├── RegisterElementHtmlAttributesEvent.php ├── RegisterPreviewTargetsEvent.php ├── TransformImageEvent.php ├── EditionChangeEvent.php ├── RegisterElementTableAttributesEvent.php ├── InvalidUserTokenEvent.php ├── RegisterElementSearchableAttributesEvent.php ├── DefineElementEditorHtmlEvent.php ├── RegisterConditionRuleTypesEvent.php ├── ReplaceAssetEvent.php ├── AssetEvent.php ├── RegisterEmailMessagesEvent.php ├── RegisterGqlTypesEvent.php └── DefineAttributeKeywordsEvent.php ├── base ├── WidgetTrait.php ├── LocalFsInterface.php └── MissingComponentInterface.php ├── errors ├── InvalidFsException.php ├── FsException.php ├── FsObjectExistsException.php ├── ImageTransformException.php ├── FsObjectNotFoundException.php ├── DbConnectException.php ├── AssetConflictException.php ├── AssetOperationException.php ├── GqlException.php ├── UserNotFoundException.php ├── AssetException.php ├── FileException.php ├── VolumeException.php ├── ImageException.php ├── AssetNotIndexableException.php ├── SiteNotFoundException.php ├── WrongEditionException.php ├── BusyResourceException.php ├── GlobalSetNotFoundException.php ├── RouteNotFoundException.php ├── TokenNotFoundException.php ├── StaleResourceException.php ├── WidgetNotFoundException.php ├── ElementNotFoundException.php ├── OperationAbortedException.php ├── SectionNotFoundException.php ├── AssetDisallowedExtensionException.php ├── StructureNotFoundException.php ├── TagGroupNotFoundException.php ├── EntryTypeNotFoundException.php ├── FieldGroupNotFoundException.php ├── SiteGroupNotFoundException.php ├── UserGroupNotFoundException.php └── CategoryGroupNotFoundException.php ├── elements └── conditions │ ├── tags │ └── TagCondition.php │ └── addresses │ └── AddressCondition.php ├── migrations ├── m220214_000000_truncate_sessions.php └── m220104_003433_asset_alt_text.php ├── CraftTrait.php ├── db └── QueryAbortedException.php └── mail └── transportadapters └── BaseTransportAdapter.php /src/web/assets/pluginstore/tests/.gitignore: -------------------------------------------------------------------------------- 1 | report/ -------------------------------------------------------------------------------- /src/templates/_elements/element.twig: -------------------------------------------------------------------------------- 1 | {% hook "cp.elements.element" %} 2 | -------------------------------------------------------------------------------- /src/templates/plugin-store/_layouts/cp.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/cp" %} 2 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/_support/.gitignore: -------------------------------------------------------------------------------- 1 | _generated/* 2 | -------------------------------------------------------------------------------- /src/web/assets/admintable/.gitignore: -------------------------------------------------------------------------------- 1 | /dist/hot 2 | /node_modules/ 3 | /.env 4 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/_craft/storage/runtime/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /src/web/assets/pluginstore/tests/.playwright/authentication/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /src/templates/index.twig: -------------------------------------------------------------------------------- 1 | {% redirect craft.app.config.general.postCpLoginRedirect ?: 'dashboard' %} 2 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/_craft/config/routes.php: -------------------------------------------------------------------------------- 1 | true, 5 | ]; 6 | -------------------------------------------------------------------------------- /src/web/assets/cp/dist/fonts/Craft.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/fonts/Craft.ttf -------------------------------------------------------------------------------- /src/web/assets/cp/dist/fonts/Craft.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/fonts/Craft.woff -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/craft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/craft.png -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-format/locale/es-BO.json: -------------------------------------------------------------------------------- 1 | {"decimal":",","thousands":".","grouping":[3],"currency":["Bs ",""],"percent":" %"} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-format/locale/fr-FR.json: -------------------------------------------------------------------------------- 1 | {"decimal":",","thousands":" ","grouping":[3],"currency":[""," €"],"percent":" %"} -------------------------------------------------------------------------------- /src/web/assets/fabric/dist/fabric.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */ 2 | -------------------------------------------------------------------------------- /src/web/assets/queuemanager/dist/manifest.json: -------------------------------------------------------------------------------- 1 | {"queue-manager.js":"/queue-manager.js","queue-manager.js.map":"/queue-manager.js.map"} -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/_craft/templates/index.twig: -------------------------------------------------------------------------------- 1 | Im a twig template and here's a random number {{ random() }} 2 | -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/branch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/branch.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/craft_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/craft_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/success.png -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-format/locale/en-IN.json: -------------------------------------------------------------------------------- 1 | {"decimal":".","thousands":",","grouping":[3,2,2,2,2,2,2,2,2,2],"currency":["₹",""]} -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/branch_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/branch_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/branch_rtl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/branch_rtl.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/hudtip_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/hudtip_top.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/success_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/success_2x.png -------------------------------------------------------------------------------- /src/web/assets/installer/dist/images/db.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/installer/dist/images/db.png -------------------------------------------------------------------------------- /src/web/assets/updater/dist/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/updater/dist/images/error.png -------------------------------------------------------------------------------- /src/web/assets/updates/dist/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/updates/dist/images/error.png -------------------------------------------------------------------------------- /src/web/assets/upgrade/dist/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/upgrade/dist/images/error.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/branch_rtl_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/branch_rtl_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/hudtip_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/hudtip_bottom.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/hudtip_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/hudtip_left.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/hudtip_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/hudtip_right.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/hudtip_top_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/hudtip_top_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/icons/favicon.ico -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/listview_sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/listview_sort.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/resizehandle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/resizehandle.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/temp_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/temp_folder.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/welcome_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/welcome_logo.png -------------------------------------------------------------------------------- /src/web/assets/installer/dist/images/site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/installer/dist/images/site.png -------------------------------------------------------------------------------- /src/web/assets/routes/dist/images/route-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/routes/dist/images/route-bg.png -------------------------------------------------------------------------------- /src/web/assets/updater/dist/images/error_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/updater/dist/images/error_2x.png -------------------------------------------------------------------------------- /src/web/assets/updater/dist/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/updater/dist/images/success.png -------------------------------------------------------------------------------- /src/web/assets/updates/dist/images/error_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/updates/dist/images/error_2x.png -------------------------------------------------------------------------------- /src/web/assets/updates/dist/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/updates/dist/images/success.png -------------------------------------------------------------------------------- /src/web/assets/upgrade/dist/images/error_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/upgrade/dist/images/error_2x.png -------------------------------------------------------------------------------- /src/web/assets/upgrade/dist/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/upgrade/dist/images/success.png -------------------------------------------------------------------------------- /src/templates/settings/fields/_type-settings.twig: -------------------------------------------------------------------------------- 1 | {% namespace namespace ?? null %} 2 | {{ field.getSettingsHtml()|raw }} 3 | {% endnamespace %} 4 | -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/hudtip_left_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/hudtip_left_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/hudtip_right_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/hudtip_right_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/resizehandle_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/resizehandle_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/welcome_logo_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/welcome_logo_2x.png -------------------------------------------------------------------------------- /src/web/assets/edittransform/dist/images/crop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/edittransform/dist/images/crop.jpg -------------------------------------------------------------------------------- /src/web/assets/edittransform/dist/images/fit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/edittransform/dist/images/fit.jpg -------------------------------------------------------------------------------- /src/web/assets/installer/dist/images/account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/installer/dist/images/account.png -------------------------------------------------------------------------------- /src/web/assets/routes/dist/images/route-bg_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/routes/dist/images/route-bg_2x.png -------------------------------------------------------------------------------- /src/web/assets/updater/dist/images/success_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/updater/dist/images/success_2x.png -------------------------------------------------------------------------------- /src/web/assets/updates/dist/images/success_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/updates/dist/images/success_2x.png -------------------------------------------------------------------------------- /src/web/assets/upgrade/dist/images/success_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/upgrade/dist/images/success_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/hudtip_bottom_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/hudtip_bottom_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/hudtip_bottom_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/hudtip_bottom_gray.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/listview_sort_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/listview_sort_2x.png -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/resizehandle_rtl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/resizehandle_rtl.png -------------------------------------------------------------------------------- /src/web/assets/edittransform/dist/images/crop_2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/edittransform/dist/images/crop_2x.jpg -------------------------------------------------------------------------------- /src/web/assets/edittransform/dist/images/fit_2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/edittransform/dist/images/fit_2x.jpg -------------------------------------------------------------------------------- /src/web/assets/edittransform/dist/images/stretch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/edittransform/dist/images/stretch.jpg -------------------------------------------------------------------------------- /src/web/assets/routes/dist/images/route-bg_rtl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/routes/dist/images/route-bg_rtl.png -------------------------------------------------------------------------------- /src/templates/_components/utilities/Updates.twig: -------------------------------------------------------------------------------- 1 |
2 |
{{ "Checking for updates…"|t('app') }}
3 | -------------------------------------------------------------------------------- /src/web/assets/cp/dist/images/resizehandle_rtl_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/cp/dist/images/resizehandle_rtl_2x.png -------------------------------------------------------------------------------- /src/web/assets/installer/dist/images/installer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/installer/dist/images/installer-bg.png -------------------------------------------------------------------------------- /src/web/assets/pluginstoreoauth/dist/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/pluginstoreoauth/dist/images/error.png -------------------------------------------------------------------------------- /src/web/assets/routes/dist/images/route-bg_rtl_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/cms/develop/src/web/assets/routes/dist/images/route-bg_rtl_2x.png -------------------------------------------------------------------------------- /src/templates/_components/utilities/Upgrade.html: -------------------------------------------------------------------------------- 1 |
2 |
{{ 'Fetching upgrade info…'|t('app') }}
3 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/_craft/config/test.php: -------------------------------------------------------------------------------- 1 | {{ 'Preview not available.'|t('app') }}

2 | -------------------------------------------------------------------------------- /src/web/assets/garnish/dist/garnish.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | Base.js, version 1.1a 3 | Copyright 2006-2010, Dean Edwards 4 | License: http://www.opensource.org/licenses/mit-license.php 5 | */ 6 | -------------------------------------------------------------------------------- /src/web/assets/pluginstore/dist/manifest.json: -------------------------------------------------------------------------------- 1 | {"app.css":"/css/app.css","app.js":"/js/app.js","images/craft.svg":"/images/craft.svg","app.css.map":"/css/app.css.map","app.js.map":"/js/app.js.map"} -------------------------------------------------------------------------------- /src/web/assets/yii2pjax/dist/jquery.pjax.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Copyright 2012, Chris Wanstrath 3 | * Released under the MIT License 4 | * https://github.com/defunkt/jquery-pjax 5 | */ 6 | -------------------------------------------------------------------------------- /src/templates/_includes/forms/fieldLayoutDesigner.twig: -------------------------------------------------------------------------------- 1 | {% set fieldLayout = fieldLayout ?? create('craft\\models\\FieldLayout') %} 2 | {{ craft.cp.fieldLayoutDesigner(fieldLayout, _context)|raw }} 3 | -------------------------------------------------------------------------------- /src/templates/_includes/forms/timeZone.twig: -------------------------------------------------------------------------------- 1 | {% set id = id ?? "timezone#{random()}" %} 2 | 3 | {% include '_includes/forms/selectize' with { 4 | options: craft.cp.getTimeZoneOptions(), 5 | }%} 6 | -------------------------------------------------------------------------------- /src/templates/error.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/message" %} 2 | {% set title = "Oops!"|t('app') %} 3 | 4 | {% block message %} 5 |

{{ title }}

6 |

{{ message }}

7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /src/web/assets/deprecationerrors/dist/css/deprecator.css: -------------------------------------------------------------------------------- 1 | #traces .body{height:100%;overflow:auto;width:100%}#traces .body strong{color:var(--medium-text-color)} 2 | /*# sourceMappingURL=deprecator.css.map*/ -------------------------------------------------------------------------------- /src/templates/_special/updater.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/basecp" %} 2 | 3 | {% block body %} 4 |
5 |
6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /src/web/assets/queuemanager/dist/queue-manager.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * @link https://craftcms.com/ 3 | * @copyright Copyright (c) Pixel & Tonic, Inc. 4 | * @license https://craftcms.github.io/license/ 5 | */ 6 | -------------------------------------------------------------------------------- /src/templates/_special/install/installing.twig: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/templates/assets/_previews/video.twig: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /src/templates/_special/email.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | {{ body }} 5 |
6 | 7 | 8 | -------------------------------------------------------------------------------- /src/web/assets/edituser/dist/css/AccountSettingsForm.css: -------------------------------------------------------------------------------- 1 | body.ltr #action-menubtn{margin:-6px var(--neg-padding) -6px 0}body.rtl #action-menubtn{margin:-6px 0 -6px var(--neg-padding)} 2 | /*# sourceMappingURL=AccountSettingsForm.css.map*/ -------------------------------------------------------------------------------- /src/web/assets/tailwindreset/dist/css/tailwind_reset.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"css/tailwind_reset.css","mappings":"AAAA;;CAAA","sources":["webpack:///./tailwind_reset.css"],"sourcesContent":["@tailwind base;\n"],"names":[],"sourceRoot":""} -------------------------------------------------------------------------------- /src/templates/_includes/forms/password.twig: -------------------------------------------------------------------------------- 1 |
2 | {%- include '_includes/forms/text' with { 3 | class: (class ?? [])|explodeClass|push('password'), 4 | type: 'password', 5 | } -%} 6 |
7 | -------------------------------------------------------------------------------- /src/templates/_special/emailtaken.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/message" %} 2 | {% set title = "Verify Email"|t %} 3 | 4 | {% block message %} 5 |

{{ "The email address {email} is already in use."|t({ email: email }) }}

6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /src/web/assets/elementresizedetector/dist/element-resize-detector.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * element-resize-detector 1.2.4 3 | * Copyright (c) 2016 Lucas Wiener 4 | * https://github.com/wnr/element-resize-detector 5 | * Licensed under MIT 6 | */ 7 | -------------------------------------------------------------------------------- /src/web/assets/vue/dist/vue.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * vue-router v3.5.4 3 | * (c) 2022 Evan You 4 | * @license MIT 5 | */ 6 | 7 | /*! 8 | * Vue.js v2.6.14 9 | * (c) 2014-2021 Evan You 10 | * Released under the MIT License. 11 | */ 12 | -------------------------------------------------------------------------------- /src/web/assets/inputmask/dist/jquery.inputmask.bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * dist/jquery.inputmask 3 | * https://github.com/RobinHerbots/Inputmask 4 | * Copyright (c) 2010 - 2021 Robin Herbots 5 | * Licensed under the MIT license 6 | * Version: 5.0.7 7 | */ 8 | -------------------------------------------------------------------------------- /src/templates/404.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/message" %} 2 | {% set title = "Page Not Found"|t('app') %} 3 | 4 | {% block message %} 5 |

{{ title }}

6 |

{{ (message ?? null) ?: "The requested URL was not found on this server."|t('app') }}

7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /src/templates/_components/utilities/QueueManager/footer.twig: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 |

5 | -------------------------------------------------------------------------------- /src/templates/500.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/message" %} 2 | {% set title = "Internal Server Error"|t('app') %} 3 | 4 | {% block message %} 5 |

{{ title }}

6 |

{{ (message ?? null) ?: "An error occurred while processing your request."|t('app') }}

7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /src/web/assets/velocity/dist/velocity.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! VelocityJS.org (1.5.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */ 2 | 3 | /*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */ 4 | -------------------------------------------------------------------------------- /src/templates/403.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/message" %} 2 | {% set title = "Unauthorized"|t('app') %} 3 | 4 | {% block message %} 5 |

{{ title }}

6 |

{{ (message ?? null) ?: "You don’t have the proper credentials to access this page."|t('app') }}

7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/.env.example.mysql: -------------------------------------------------------------------------------- 1 | # Set in accordance to your environment 2 | 3 | CRAFT_DB_DSN="mysql:host=localhost;port=3306;dbname=craft_test" 4 | CRAFT_DB_USER="root" 5 | CRAFT_DB_PASSWORD="" 6 | CRAFT_DB_TABLE_PREFIX="craft" 7 | 8 | SECURITY_KEY="abcde12345" 9 | -------------------------------------------------------------------------------- /src/web/assets/pluginstore/postcss.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | var tailwindcss = require('tailwindcss'); 3 | 4 | module.exports = { 5 | plugins: [ 6 | tailwindcss(path.resolve(__dirname, './tailwind.config.js')), 7 | require('autoprefixer'), 8 | ], 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/503.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/message" %} 2 | {% set title = "Service Unavailable"|t('app') %} 3 | 4 | {% block message %} 5 |

{{ title }}

6 |

{{ (message ?? null) ?: "Our site is temporarily unavailable. Please try again later."|t('app') }}

7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /src/web/assets/login/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {login: './login.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/money/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {Money: './Money.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/sites/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {sites: './sites.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/tailwindreset/postcss.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | var tailwindcss = require('tailwindcss'); 3 | 4 | module.exports = { 5 | plugins: [ 6 | tailwindcss(path.resolve(__dirname, './tailwind.config.js')), 7 | require('autoprefixer'), 8 | ], 9 | }; 10 | -------------------------------------------------------------------------------- /src/web/assets/fields/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {fields: './fields.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/routes/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {routes: './routes.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/updater/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {Updater: './Updater.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/templates/400.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/message" %} 2 | {% set title = "Bad Request"|t('app') %} 3 | 4 | {% block message %} 5 |

{{ title }}

6 |

{{ (message ?? null) ?: "The request could not be understood by the server due to malformed syntax."|t('app') }}

7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /src/web/assets/feed/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {FeedWidget: './FeedWidget.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/installer/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {install: './install.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/generalsettings/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {rebrand: './rebrand.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/graphiql/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {graphiql: './graphiql-init.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/matrix/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {MatrixInput: './MatrixInput.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/utilities/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {utilities: './utilities.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/editsection/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {editsection: './editsection.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/edittransform/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {transforms: './transforms.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/newusers/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {NewUsersWidget: './NewUsersWidget.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/plugins/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {PluginManager: './PluginManager.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/pluginstoreoauth/dist/parseFragmentString.js: -------------------------------------------------------------------------------- 1 | jQuery.parseFragmentString=function(e){var n,t,r,o={},p=e.split("&");for(t=0,r=p.length;t 2 | 3 | {{ 'Select all'|t('app') }} 4 | 5 | 6 | 7 | 10 |
11 | -------------------------------------------------------------------------------- /src/web/assets/dbbackup/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {DbBackupUtility: './DbBackupUtility.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/deprecationerrors/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {deprecator: './deprecator.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/fieldsettings/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {fieldsettings: './fieldsettings.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/quickpost/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {QuickPostWidget: './QuickPostWidget.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/tailwindreset/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {tailwind_reset: './tailwind_reset.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/updateswidget/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {UpdatesWidget: './UpdatesWidget.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/systemmessages/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {system_messages: './system_messages.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/userpermissions/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {UserPermissions: './UserPermissions.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/templates/plugin-store/_special/oauth/callback.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/basecp" %} 2 | {% set title = 'Connecting to CraftCMS.com…'|t('app') %} 3 | 4 | {% block body %} 5 |
6 |
{{ "Connecting to CraftCMS.com…"|t('app') }}
7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /src/web/assets/dashboard/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: { 9 | Dashboard: './Dashboard.js', 10 | }, 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /src/web/assets/matrixsettings/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {MatrixConfigurator: './MatrixConfigurator.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/recententries/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {RecentEntriesWidget: './RecentEntriesWidget.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/tablesettings/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {TableFieldSettings: './TableFieldSettings.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/.env.example.pgsql: -------------------------------------------------------------------------------- 1 | # Set in accordance to your environment 2 | 3 | CRAFT_DB_DSN="pgsql:host=localhost;port=5432;dbname=craft_test" 4 | CRAFT_DB_USER="postgres" 5 | CRAFT_DB_PASSWORD="" 6 | CRAFT_DB_SCHEMA="public" 7 | CRAFT_DB_TABLE_PREFIX="craft" 8 | 9 | SECURITY_KEY="abcde12345" 10 | -------------------------------------------------------------------------------- /src/web/assets/findreplace/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: {FindAndReplaceUtility: './FindAndReplaceUtility.js'}, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /src/web/assets/queuemanager/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | type: 'vue', 8 | config: { 9 | entry: {'queue-manager': './queue-manager.js'}, 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /src/web/assets/clearcaches/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: { 9 | ClearCachesUtility: './ClearCachesUtility.js', 10 | }, 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /src/templates/_elements/indexcontainer.twig: -------------------------------------------------------------------------------- 1 | {# This template is deprecated! You should be extending `_layouts/elementindex.html` if possible. #} 2 | 3 |
4 |
5 | {% include '_elements/toolbar' %} 6 |
7 | 8 |
9 |
10 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/_support/Helper/Unit.php: -------------------------------------------------------------------------------- 1 | { 4 | await page.goto(baseURL + '/plugin-store'); 5 | await page.click('#cart-button'); 6 | 7 | const title = page.locator('#pluginstore-modal h1'); 8 | await expect(title).toHaveText('Cart'); 9 | }); 10 | -------------------------------------------------------------------------------- /src/templates/_components/widgets/CraftSupport/response.twig: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /src/templates/_includes/forms/datetime.twig: -------------------------------------------------------------------------------- 1 |
2 | {% include '_includes/forms/date' with { 3 | hasOuterContainer: true, 4 | isDateTime: true, 5 | } %} 6 | {% include '_includes/forms/time' with { 7 | hasOuterContainer: true, 8 | isDateTime: true, 9 | outputTzParam: false, 10 | } %} 11 |
12 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/_craft/config/db.php: -------------------------------------------------------------------------------- 1 | App::env('CRAFT_DB_DSN'), 7 | 'user' => App::env('CRAFT_DB_USER'), 8 | 'password' => App::env('CRAFT_DB_PASSWORD'), 9 | 'schema' => App::env('CRAFT_DB_SCHEMA'), 10 | 'tablePrefix' => App::env('CRAFT_DB_TABLE_PREFIX'), 11 | ]; 12 | -------------------------------------------------------------------------------- /src/web/assets/conditionbuilder/dist/ConditionBuilder.js: -------------------------------------------------------------------------------- 1 | htmx.on("htmx:load",(function(e){if(e.detail.elt!==document.body){var t=e.detail.elt.querySelector(".condition");if(t&&t.classList.contains("sortable")){var a=t.querySelectorAll(".condition-rule");a.length&&new Garnish.DragSort(a,{axis:Garnish.Y_AXIS,handle:".draggable-handle"})}}})); 2 | //# sourceMappingURL=ConditionBuilder.js.map -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/zh-CN.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%x %A %X","date":"%Y年%-m月%-d日","time":"%H:%M:%S","periods":["上午","下午"],"days":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"shortDays":["周日","周一","周二","周三","周四","周五","周六"],"months":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"shortMonths":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]} -------------------------------------------------------------------------------- /src/web/assets/edituser/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: { 9 | AccountSettingsForm: './AccountSettingsForm.js', 10 | profile: './profile.js', 11 | }, 12 | }, 13 | }); 14 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/_support/Helper/Functional.php: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/config/mimeTypes.php: -------------------------------------------------------------------------------- 1 | 7 |
8 |
9 | 10 | {% endblock %} 11 | 12 | {% css "#body { max-width: 800px; margin: 50px auto; }" %} 13 | -------------------------------------------------------------------------------- /src/web/assets/focalpoint/dist/css/FocalPoint.css: -------------------------------------------------------------------------------- 1 | .preview-focal-point{background:rgba(0,0,0,.5);border:2px solid hsla(0,0%,100%,.8);border-radius:20px;cursor:pointer;height:20px;position:absolute;width:20px}.preview-focal-point .inner{background:hsla(0,0%,100%,.8);border:2px solid hsla(0,0%,100%,.8);border-radius:4px;height:0;left:6px;position:absolute;top:6px;width:0} 2 | /*# sourceMappingURL=FocalPoint.css.map*/ -------------------------------------------------------------------------------- /src/templates/_special/install/license.twig: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /src/templates/_components/utilities/SystemMessages/index.twig: -------------------------------------------------------------------------------- 1 |
2 | {% for message in messages %} 3 |

{{ message.heading }}

4 |
5 |
{{ message.subject }}
6 |
{{ message.body|nl2br }}
7 |
8 | {% endfor %} 9 |
10 | -------------------------------------------------------------------------------- /src/templates/_includes/fieldlayoutdesigner.twig: -------------------------------------------------------------------------------- 1 | {% from '_includes/forms' import fieldLayoutDesignerField %} 2 | 3 | {{ fieldLayoutDesignerField({ 4 | instructions: instructions ?? null, 5 | customizableTabs: customizableTabs ?? true, 6 | customizableUi: customizableUi ?? false, 7 | pretendTabName: pretendTabName ?? 'Content'|t('app'), 8 | fieldLayout: (fieldLayout ?? false) ?: null, 9 | }) }} 10 | -------------------------------------------------------------------------------- /src/templates/settings/general/_images/icon.twig: -------------------------------------------------------------------------------- 1 | {% extends "settings/general/_images/image" %} 2 | 3 | {% set imageType = "icon" %} 4 | 5 | {% block changeIconLabel %} 6 | {{ 'Change icon'|t('app') }} 7 | {% endblock %} 8 | 9 | {% block deleteIconLabel %} 10 | {{ 'Delete icon'|t('app') }} 11 | {% endblock %} 12 | 13 | {% block uploadIconLabel %} 14 | {{ 'Upload icon'|t('app') }} 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /src/templates/settings/general/_images/logo.twig: -------------------------------------------------------------------------------- 1 | {% extends "settings/general/_images/image" %} 2 | 3 | {% set imageType = "logo" %} 4 | 5 | {% block changeLogoLabel %} 6 | {{ 'Change logo'|t('app') }} 7 | {% endblock %} 8 | 9 | {% block deleteLogoLabel %} 10 | {{ 'Delete logo'|t('app') }} 11 | {% endblock %} 12 | 13 | {% block uploadLogoLabel %} 14 | {{ 'Upload logo'|t('app') }} 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /src/web/assets/admintable/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | type: 'vue', 8 | config: { 9 | entry: {app: './main.js'}, 10 | output: { 11 | filename: 'js/app.js', 12 | chunkFilename: 'js/[name].js', 13 | }, 14 | }, 15 | }); 16 | -------------------------------------------------------------------------------- /src/templates/_includes/defaulticon.svg.twig: -------------------------------------------------------------------------------- 1 | 2 | {{ label }} 3 | 4 | {{ label[0:1]|upper }} 5 | 6 | -------------------------------------------------------------------------------- /src/web/assets/pluginstoreoauth/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: { 9 | PluginStoreOauthCallback: './PluginStoreOauthCallback.js', 10 | parseFragmentString: './parseFragmentString.js', 11 | }, 12 | }, 13 | }); 14 | -------------------------------------------------------------------------------- /src/views/debug/deprecated/summary.php: -------------------------------------------------------------------------------- 1 | data); 4 | ?> 5 |
6 | 7 | Deprecated 9 | 10 |
11 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/functional/ExampleFunctionalCest.php: -------------------------------------------------------------------------------- 1 | amOnPage('?p=/'); 15 | $I->seeResponseCodeIs(200); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/web/assets/pluginstore/.env.example: -------------------------------------------------------------------------------- 1 | # Running webpack-dev-server from host 2 | DEV_SERVER_PUBLIC="http://localhost:8085/" 3 | DEV_SERVER_PORT="8085" 4 | DEV_SERVER_LOOPBACK="http://host.docker.internal:8085" 5 | 6 | # Runnning webpack-dev-server within container 7 | # DEV_SERVER_PUBLIC="http://craft.ddev.site:3000/" 8 | # DEV_SERVER_PORT="3000" 9 | # DEV_SERVER_HOST="0.0.0.0" 10 | # DEV_SERVER_LOOPBACK="http://0.0.0.0:3000" 11 | -------------------------------------------------------------------------------- /src/web/assets/deprecationerrors/dist/css/deprecator.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"css/deprecator.css","mappings":"AAIE,cAEE,YACA,cAFA,UAEA,CAEA,qBACE","sources":["webpack:///./deprecator.scss"],"sourcesContent":["@charset \"UTF-8\";\n@import '@craftcms/sass/mixins';\n\n#traces {\n .body {\n width: 100%;\n height: 100%;\n overflow: auto;\n\n strong {\n color: var(--medium-text-color);\n }\n }\n}\n"],"names":[],"sourceRoot":""} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/he-IL.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, %e ב%B %Y %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],"shortDays":["א׳","ב׳","ג׳","ד׳","ה׳","ו׳","ש׳"],"months":["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"shortMonths":["ינו׳","פבר׳","מרץ","אפר׳","מאי","יוני","יולי","אוג׳","ספט׳","אוק׳","נוב׳","דצמ׳"]} -------------------------------------------------------------------------------- /src/templates/_includes/forms/hidden.twig: -------------------------------------------------------------------------------- 1 | {% set inputAttributes = { 2 | type: 'hidden', 3 | id: id ?? false, 4 | name: name ?? false, 5 | value: value ?? false, 6 | }|merge(inputAttributes ?? [], recursive=true) %} 7 | 8 | {%- if block('attr') is defined %} 9 | {%- set inputAttributes = inputAttributes|merge(('
')|parseAttr, recursive=true) %} 10 | {% endif %} 11 | 12 | {{ tag('input', inputAttributes) }} 13 | -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/tr-TR.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%a %e %b %X %Y","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"shortDays":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"months":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"shortMonths":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"]} -------------------------------------------------------------------------------- /src/web/assets/pluginstore/tests/.playwright/utils.js: -------------------------------------------------------------------------------- 1 | const waitForPluginStore = async ({page}) => { 2 | // Make sure the Plugin Store is loading its initial state 3 | await page.waitForSelector('.status-message', {state: 'visible'}); 4 | 5 | // Make sure the Plugin Store is done loading its initial state 6 | await page.waitForSelector('.status-message', {state: 'detached'}); 7 | }; 8 | 9 | module.exports = { 10 | waitForPluginStore, 11 | }; 12 | -------------------------------------------------------------------------------- /src/gql/handlers/SiteId.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.6.18 15 | */ 16 | class SiteId extends Site 17 | { 18 | protected string $argumentName = 'siteId'; 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/entries/index.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/elementindex" %} 2 | {% set title = "Entries"|t('app') %} 3 | {% set elementType = 'craft\\elements\\Entry' %} 4 | {% set canHaveDrafts = true %} 5 | 6 | {% do view.registerTranslations('app', [ 7 | 'New entry', 8 | ]) %} 9 | 10 | {% if sectionHandle is defined %} 11 | {% js %} 12 | window.defaultSectionHandle = "{{ sectionHandle|e('js') }}"; 13 | {% endjs %} 14 | {% endif %} 15 | 16 | -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/fr-CA.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%a %e %b %Y %X","date":"%Y-%m-%d","time":"%H:%M:%S","periods":["",""],"days":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"shortDays":["dim","lun","mar","mer","jeu","ven","sam"],"months":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"shortMonths":["jan","fév","mar","avr","mai","jui","jul","aoû","sep","oct","nov","déc"]} -------------------------------------------------------------------------------- /src/web/assets/focalpoint/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: { 9 | FocalPoint: './FocalPoint.ts', 10 | }, 11 | output: { 12 | library: { 13 | name: 'Craft', 14 | type: 'assign-properties', 15 | }, 16 | }, 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /src/web/assets/assetindexes/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | 5 | module.exports = getConfig({ 6 | context: __dirname, 7 | config: { 8 | entry: { 9 | AssetIndexer: './AssetIndexer.ts', 10 | }, 11 | output: { 12 | library: { 13 | name: 'Craft', 14 | type: 'assign-properties', 15 | }, 16 | }, 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/cs-CZ.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A,%e.%B %Y, %X","date":"%-d.%-m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["neděle","pondělí","úterý","středa","čvrtek","pátek","sobota"],"shortDays":["ne.","po.","út.","st.","čt.","pá.","so."],"months":["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"shortMonths":["led","úno","břez","dub","kvě","čer","červ","srp","zář","říj","list","pros"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/da-DK.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A den %d %B %Y %X","date":"%d-%m-%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"shortDays":["søn","man","tir","ons","tor","fre","lør"],"months":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"shortMonths":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/es-MX.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%x, %X","date":"%d/%m/%Y","time":"%-I:%M:%S %p","periods":["AM","PM"],"days":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"shortDays":["dom","lun","mar","mié","jue","vie","sáb"],"months":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"shortMonths":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"]} -------------------------------------------------------------------------------- /src/templates/_elements/structureview/container.twig: -------------------------------------------------------------------------------- 1 | {% include "_elements/structure" with { 2 | context: context, 3 | elements: elements, 4 | disabledElementIds: disabledElementIds, 5 | collapsedElementIds: collapsedElementIds, 6 | structure: structure, 7 | sortable: (context == 'index'), 8 | newChildUrl: (context == 'index' and newChildUrl is defined ? newChildUrl : null), 9 | } only %} 10 | -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/de-CH.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, der %e. %B %Y, %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"shortDays":["So","Mo","Di","Mi","Do","Fr","Sa"],"months":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"shortMonths":["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/de-DE.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, der %e. %B %Y, %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"shortDays":["So","Mo","Di","Mi","Do","Fr","Sa"],"months":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"shortMonths":["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/en-CA.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%a %b %e %X %Y","date":"%Y-%m-%d","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"shortDays":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"months":["January","February","March","April","May","June","July","August","September","October","November","December"],"shortMonths":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/en-GB.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%a %e %b %X %Y","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"shortDays":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"months":["January","February","March","April","May","June","July","August","September","October","November","December"],"shortMonths":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/en-US.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%x, %X","date":"%-m/%-d/%Y","time":"%-I:%M:%S %p","periods":["AM","PM"],"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"shortDays":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"months":["January","February","March","April","May","June","July","August","September","October","November","December"],"shortMonths":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/mk-MK.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, %e %B %Y г. %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["недела","понеделник","вторник","среда","четврток","петок","сабота"],"shortDays":["нед","пон","вто","сре","чет","пет","саб"],"months":["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],"shortMonths":["јан","фев","мар","апр","мај","јун","јул","авг","сеп","окт","ное","дек"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/nb-NO.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A den %d. %B %Y %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"shortDays":["søn","man","tir","ons","tor","fre","lør"],"months":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"shortMonths":["jan","feb","mars","apr","mai","juni","juli","aug","sep","okt","nov","des"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/nl-NL.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%a %e %B %Y %X","date":"%d-%m-%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"shortDays":["zo","ma","di","wo","do","vr","za"],"months":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"shortMonths":["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/ru-RU.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, %e %B %Y г. %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"shortDays":["вс","пн","вт","ср","чт","пт","сб"],"months":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"shortMonths":["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/sv-SE.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A den %d %B %Y %X","date":"%Y-%m-%d","time":"%H:%M:%S","periods":["fm","em"],"days":["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],"shortDays":["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],"months":["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],"shortMonths":["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/pt-BR.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, %e de %B de %Y. %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],"shortDays":["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],"months":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"shortMonths":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/es-ES.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, %e de %B de %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"shortDays":["dom","lun","mar","mié","jue","vie","sáb"],"months":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"shortMonths":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/it-IT.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A %e %B %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"shortDays":["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],"months":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"shortMonths":["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"]} -------------------------------------------------------------------------------- /src/web/assets/pluginstore/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true, 5 | }, 6 | extends: ['plugin:vue/essential', 'eslint:recommended'], 7 | parserOptions: { 8 | parser: '@babel/eslint-parser', 9 | requireConfigFile: false, 10 | }, 11 | rules: { 12 | 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 13 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /src/templates/_components/fieldtypes/Money/input.twig: -------------------------------------------------------------------------------- 1 | {% import '_includes/forms' as forms %} 2 | 3 | {{ forms.money({ 4 | id: id ?? field.getInputId(), 5 | name: field.handle, 6 | value: value ?? '', 7 | size: field.size, 8 | currency: currency ? currency : field.defaultCurrency, 9 | currencyLabel: currencyLabel, 10 | showCurrency: showCurrency, 11 | decimals: decimals, 12 | size: field.size, 13 | describedBy: field.describedBy, 14 | }) }} 15 | -------------------------------------------------------------------------------- /src/templates/_elements/modalbody.twig: -------------------------------------------------------------------------------- 1 |
2 |
3 | 6 |
7 | 8 |
9 |
10 | {% include '_elements/toolbar' %} 11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /src/templates/graphql/graphiql.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/basecp" %} 2 | {% set title = "Explore the GraphQL API"|t %} 3 | {% set selectedSubnavItem = 'explore' %} 4 | {% set showHeader = false %} 5 | 6 | {% block body %} 7 |
8 |
9 |
10 | {% endblock %} 11 | -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/uk-UA.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, %e %B %Y р. %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["дп","пп"],"days":["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"],"shortDays":["нд","пн","вт","ср","чт","пт","сб"],"months":["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"],"shortMonths":["січ.","лют.","бер.","квіт.","трав.","черв.","лип.","серп.","вер.","жовт.","лист.","груд."]} -------------------------------------------------------------------------------- /src/templates/_components/mailertransportadapters/Sendmail/settings.twig: -------------------------------------------------------------------------------- 1 | {% import "_includes/forms" as forms %} 2 | 3 | {{ forms.selectizeField({ 4 | label: 'Sendmail Command'|t('app'), 5 | instructions: 'The command to run Sendmail with.'|t('app'), 6 | id: 'command', 7 | name: 'command', 8 | options: commandOptions, 9 | includeEnvVars: true, 10 | allowedEnvValues: null, 11 | value: adapter.command, 12 | errors: adapter.getErrors('command') 13 | }) }} 14 | -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/ar-EG.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%x, %X","date":"%-d/%-m/%Y","time":"%-I:%M:%S %p","periods":["ص","م"],"days":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"shortDays":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"months":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"shortMonths":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/ca-ES.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, %e de %B de %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"shortDays":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"months":["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],"shortMonths":["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/fa-IR.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%x, %X","date":"%-d/%-m/%Y","time":"%-I:%M:%S %p","periods":["صبح","عصر"],"days":["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"shortDays":["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"months":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"shortMonths":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/fr-FR.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A %e %B %Y à %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"shortDays":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"months":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"shortMonths":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."]} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/hu-HU.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%Y. %B %-e., %A %X","date":"%Y. %m. %d.","time":"%H:%M:%S","periods":["de.","du."],"days":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"shortDays":["V","H","K","Sze","Cs","P","Szo"],"months":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"shortMonths":["jan.","feb.","már.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."]} -------------------------------------------------------------------------------- /src/templates/_components/elementactions/SetStatus/trigger.twig: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /src/templates/assets/index.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/elementindex" %} 2 | {% set title = "Assets"|t('app') %} 3 | {% set elementType = 'craft\\elements\\Asset' %} 4 | 5 | {% do view.registerAssetBundle("craft\\web\\assets\\fileupload\\FileUploadAsset") %} 6 | {% do view.registerAssetBundle("craft\\web\\assets\\prismjs\\PrismJsAsset") %} 7 | 8 | {% if defaultSource is defined %} 9 | {% js %} 10 | window.defaultSource = "{{ defaultSource|e('js') }}"; 11 | {% endjs %} 12 | {% endif %} 13 | -------------------------------------------------------------------------------- /src/templates/_elements/thumbsview/elements.twig: -------------------------------------------------------------------------------- 1 | {% apply spaceless %} 2 | 3 | {% for element in elements %} 4 |
  • 5 | {% include "_elements/element" %} 6 | {% if showCheckboxes %}
    {% endif %} 7 |
  • 8 | {% endfor %} 9 | 10 | {% endapply -%} 11 | -------------------------------------------------------------------------------- /src/templates/plugin-store/_special/oauth/modal-callback.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/basecp" %} 2 | 3 | {% set title = 'Modal Callback' %} 4 | 5 | {% js %} 6 | Craft.sendApiRequest('GET', 'account', { 7 | headers: { 8 | 'Authorization': "Bearer {{ craftIdAccessToken }}" 9 | } 10 | }) 11 | .then(function(responseData) { 12 | window.opener.pluginStoreApp.updateCraftId(responseData, function() { 13 | window.close(); 14 | }); 15 | }) 16 | {% endjs %} -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/pl-PL.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, %e %B %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],"shortDays":["Niedz.","Pon.","Wt.","Śr.","Czw.","Pt.","Sob."],"months":["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],"shortMonths":["Stycz.","Luty","Marz.","Kwie.","Maj","Czerw.","Lipc.","Sierp.","Wrz.","Paźdz.","Listop.","Grudz."]} -------------------------------------------------------------------------------- /src/templates/_includes/fields.twig: -------------------------------------------------------------------------------- 1 | {% set element = element ?? null %} 2 | {% set namespace = namespace is defined ? namespace : 'fields' %} 3 | 4 | {% namespace namespace %} 5 | {% for field in fields %} 6 | {% include "_includes/field" with { 7 | field: field, 8 | required: field.required, 9 | element: element, 10 | static: static ?? false, 11 | registerDeltas: registerDeltas ?? false, 12 | } only %} 13 | {% endfor %} 14 | {% endnamespace %} 15 | -------------------------------------------------------------------------------- /src/web/assets/d3/dist/d3-time-format/locale/fi-FI.json: -------------------------------------------------------------------------------- 1 | {"dateTime":"%A, %-d. %Bta %Y klo %X","date":"%-d.%-m.%Y","time":"%H:%M:%S","periods":["a.m.","p.m."],"days":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"shortDays":["Su","Ma","Ti","Ke","To","Pe","La"],"months":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"shortMonths":["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"]} -------------------------------------------------------------------------------- /src/web/assets/punycode/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve('punycode/punycode.js'), 14 | }, 15 | ], 16 | }), 17 | ], 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /src/events/ModelEvent.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class ModelEvent extends \yii\base\ModelEvent 17 | { 18 | /** 19 | * @var bool Whether the model is brand new 20 | */ 21 | public bool $isNew = false; 22 | } 23 | -------------------------------------------------------------------------------- /src/web/assets/axios/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve('axios/dist/axios.js'), 14 | }, 15 | ], 16 | }), 17 | ], 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /src/web/assets/vue/VueAsset.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class ElementStructureEvent extends ModelEvent 17 | { 18 | /** 19 | * @var int The structure ID 20 | */ 21 | public int $structureId; 22 | } 23 | -------------------------------------------------------------------------------- /src/icons/user.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /src/templates/_includes/nav.twig: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /src/web/assets/fabric/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve('fabric/dist/fabric.js'), 14 | }, 15 | ], 16 | }), 17 | ], 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /src/web/assets/jquery/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve('jquery/dist/jquery.js'), 14 | }, 15 | ], 16 | }), 17 | ], 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /src/web/assets/xregexp/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve('xregexp/xregexp-all.js'), 14 | }, 15 | ], 16 | }), 17 | ], 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /src/web/assets/axios/AxiosAsset.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.1.0 17 | */ 18 | class DefineRulesEvent extends Event 19 | { 20 | /** 21 | * @var array The model rules 22 | */ 23 | public array $rules = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/PopulateElementEvent.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class PopulateElementEvent extends ElementEvent 17 | { 18 | /** 19 | * @var array The element query’s result for this element. 20 | */ 21 | public array $row; 22 | } 23 | -------------------------------------------------------------------------------- /src/templates/_includes/forms/errorList.twig: -------------------------------------------------------------------------------- 1 | {%- if errors %} 2 | {% tag 'ul' with { 3 | id: id ?? false, 4 | class: 'errors', 5 | } %} 6 | {% for error in errors %} 7 |
  • 8 | {{ tag('span', { 9 | class: 'visually-hidden', 10 | text: 'Error:'|t('app'), 11 | }) }} 12 | {{ error|e|md(inlineOnly=true)|replace('/&(\\w+);/', '&$1;')|raw }} 13 |
  • 14 | {% endfor %} 15 | {% endtag %} 16 | {%- endif %} 17 | -------------------------------------------------------------------------------- /src/events/DefineFieldsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.5.0 17 | */ 18 | class DefineFieldsEvent extends Event 19 | { 20 | /** 21 | * @var array The arrayable fields 22 | */ 23 | public array $fields = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RestoreEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RestoreEvent extends Event 19 | { 20 | /** 21 | * @var string The file path to the backup to restore. 22 | */ 23 | public string $file; 24 | } 25 | -------------------------------------------------------------------------------- /src/templates/_special/dbupdate.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/message" %} 2 | {% set title = "Complete the Update"|t('app') %} 3 | 4 | {% block message %} 5 |

    {{ "To complete the update, some changes must be made to your database."|t('app') }}

    6 |
    7 | {{ csrfInput() }} 8 | {{ actionInput('updater') }} 9 | {{ hiddenInput('return', craft.app.request.getPathInfo()) }} 10 | 11 |
    12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /src/web/assets/focusvisible/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve('focus-visible/dist/focus-visible.js'), 14 | }, 15 | ], 16 | }), 17 | ], 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /src/events/UserEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class UserEvent extends CancelableEvent 19 | { 20 | /** 21 | * @var User The user model associated with the event. 22 | */ 23 | public User $user; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/MoveElementEvent.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class MoveElementEvent extends ElementEvent 17 | { 18 | /** 19 | * @var int The ID of the structure the element is being moved within. 20 | */ 21 | public int $structureId; 22 | } 23 | -------------------------------------------------------------------------------- /src/icons/c-debug.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /src/web/assets/admintable/dist/js/app.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Lodash 4 | * Copyright OpenJS Foundation and other contributors 5 | * Released under MIT license 6 | * Based on Underscore.js 1.8.3 7 | * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 8 | */ 9 | 10 | /**! 11 | * Sortable 1.15.0 12 | * @author RubaXa 13 | * @author owenm 14 | * @license MIT 15 | */ 16 | -------------------------------------------------------------------------------- /src/events/DefineValueEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.7.0 17 | */ 18 | class DefineValueEvent extends Event 19 | { 20 | /** 21 | * @var mixed The value being defined by the event 22 | */ 23 | public mixed $value = null; 24 | } 25 | -------------------------------------------------------------------------------- /src/test/mockclasses/TwigExtension.php: -------------------------------------------------------------------------------- 1 | 16 | * @author Global Network Group | Giel Tettelaar 17 | * @since 3.2.0 18 | */ 19 | class TwigExtension extends AbstractExtension 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /src/events/DefineBehaviorsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class DefineBehaviorsEvent extends Event 19 | { 20 | /** 21 | * @var array The component definitions 22 | */ 23 | public array $behaviors = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RebuildConfigEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.1.20 17 | */ 18 | class RebuildConfigEvent extends Event 19 | { 20 | /** 21 | * @var array The rebuilt project config 22 | */ 23 | public array $config = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RegisterUrlRulesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterUrlRulesEvent extends Event 19 | { 20 | /** 21 | * @var array The registered URL rules. 22 | */ 23 | public array $rules = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/ReorderSitesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class ReorderSitesEvent extends Event 19 | { 20 | /** 21 | * @var int[] The site IDs in their new order 22 | */ 23 | public ?array $siteIds = null; 24 | } 25 | -------------------------------------------------------------------------------- /src/base/WidgetTrait.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | trait WidgetTrait 17 | { 18 | /** 19 | * @var int|null The user’s chosen cospan for the widget 20 | */ 21 | public ?int $colspan = null; 22 | } 23 | -------------------------------------------------------------------------------- /src/events/DefineEntryTypesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.6.0 17 | */ 18 | class DefineEntryTypesEvent extends Event 19 | { 20 | /** 21 | * @var array The available entry types 22 | */ 23 | public array $entryTypes = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/DeleteSiteEvent.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class DeleteSiteEvent extends SiteEvent 17 | { 18 | /** 19 | * @var int|null The site ID that should take over the deleted site’s contents 20 | */ 21 | public ?int $transferContentTo = null; 22 | } 23 | -------------------------------------------------------------------------------- /src/templates/_layouts/components/alerts.twig: -------------------------------------------------------------------------------- 1 | {% if craft.cp.areAlertsCached() %} 2 | {% set alerts = craft.cp.getAlerts() %} 3 | {% if alerts %} 4 |
      5 | {% for alert in alerts %} 6 |
    • {{ alert|raw }}
    • 7 | {% endfor %} 8 |
    9 | {% endif %} 10 | {% else %} 11 | {% js %} 12 | Craft.cp.fetchAlerts().then(alerts => { 13 | Craft.cp.displayAlerts(alerts); 14 | }); 15 | {% endjs %} 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /src/events/ErrorEvent.php: -------------------------------------------------------------------------------- 1 | 17 | * @since 3.0.0 18 | */ 19 | class ErrorEvent extends Event 20 | { 21 | /** 22 | * @var Exception The uncaught exception that was thrown 23 | */ 24 | public Exception $exception; 25 | } 26 | -------------------------------------------------------------------------------- /src/events/MutationPopulateElementEvent.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.5.0 15 | */ 16 | class MutationPopulateElementEvent extends ElementEvent 17 | { 18 | /** 19 | * @var array The arguments used to populate element with data 20 | */ 21 | public array $arguments; 22 | } 23 | -------------------------------------------------------------------------------- /src/events/RegisterCpAlertsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterCpAlertsEvent extends Event 19 | { 20 | /** 21 | * @var array The registered control panel alerts 22 | */ 23 | public array $alerts = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/web/assets/picturefill/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | const path = require('path'); 6 | 7 | module.exports = getConfig({ 8 | context: __dirname, 9 | config: { 10 | plugins: [ 11 | new CopyWebpackPlugin({ 12 | patterns: [ 13 | { 14 | from: require.resolve('picturefill/dist/picturefill.js'), 15 | }, 16 | ], 17 | }), 18 | ], 19 | }, 20 | }); 21 | -------------------------------------------------------------------------------- /src/web/assets/velocity/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve('velocity-animate/velocity.min.js'), 14 | to: 'velocity.js', 15 | }, 16 | ], 17 | }), 18 | ], 19 | }, 20 | }); 21 | -------------------------------------------------------------------------------- /src/errors/InvalidFsException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 4.0.0 15 | */ 16 | class InvalidFsException extends FsException 17 | { 18 | /** 19 | * @inheritdoc 20 | */ 21 | public function getName(): string 22 | { 23 | return 'Invalid filesystem'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/events/RegisterGqlQueriesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.3.0 17 | */ 18 | class RegisterGqlQueriesEvent extends Event 19 | { 20 | /** 21 | * @var array[] List of GraphQL query definitions 22 | */ 23 | public array $queries = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/web/assets/focusvisible/FocusVisibleAsset.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 4.0.0 17 | */ 18 | class FsException extends Exception 19 | { 20 | /** 21 | * @inheritdoc 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Filesystem Error'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/events/CancelableEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class CancelableEvent extends Event 19 | { 20 | /** 21 | * @var bool Whether to continue performing the action that called this event 22 | */ 23 | public bool $isValid = true; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/ExceptionEvent.php: -------------------------------------------------------------------------------- 1 | 17 | * @since 3.0.0 18 | */ 19 | class ExceptionEvent extends Event 20 | { 21 | /** 22 | * @var Throwable The uncaught exception that was thrown 23 | */ 24 | public Throwable $exception; 25 | } 26 | -------------------------------------------------------------------------------- /src/events/RegisterAssetFileKindsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterAssetFileKindsEvent extends Event 19 | { 20 | /** 21 | * @var array The registered asset file kinds 22 | */ 23 | public array $fileKinds = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RegisterCpNavItemsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterCpNavItemsEvent extends Event 19 | { 20 | /** 21 | * @var array The registered control panel nav items 22 | */ 23 | public array $navItems = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RegisterCpSettingsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.1.0 17 | */ 18 | class RegisterCpSettingsEvent extends Event 19 | { 20 | /** 21 | * @var array The registered control panel settings 22 | */ 23 | public array $settings = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/UserAssignGroupEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class UserAssignGroupEvent extends CancelableEvent 19 | { 20 | /** 21 | * @var User The user model associated with this event 22 | */ 23 | public User $user; 24 | } 25 | -------------------------------------------------------------------------------- /src/icons/craft-stack-exchange.svg: -------------------------------------------------------------------------------- 1 | 2 | Craft CMS Stack Exchange 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/events/DeleteElementEvent.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.1.0 15 | */ 16 | class DeleteElementEvent extends ElementEvent 17 | { 18 | /** 19 | * @var bool Whether to immediately hard-delete the element, rather than soft-deleting it 20 | */ 21 | public bool $hardDelete = false; 22 | } 23 | -------------------------------------------------------------------------------- /src/events/RegisterGqlDirectivesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.3.0 17 | */ 18 | class RegisterGqlDirectivesEvent extends Event 19 | { 20 | /** 21 | * @var array List of GraphQL Directive classes 22 | */ 23 | public array $directives = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RegisterGqlMutationsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.5.0 17 | */ 18 | class RegisterGqlMutationsEvent extends Event 19 | { 20 | /** 21 | * @var array[] List of GraphQL mutation definitions 22 | */ 23 | public array $mutations = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/tests/unit/ExampleUnitTest.php: -------------------------------------------------------------------------------- 1 | setEdition(Craft::Pro); 21 | 22 | $this->assertSame( 23 | Craft::Pro, 24 | Craft::$app->getEdition() 25 | ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/web/assets/fileupload/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve( 14 | 'blueimp-file-upload/js/jquery.fileupload.js' 15 | ), 16 | }, 17 | ], 18 | }), 19 | ], 20 | }, 21 | }); 22 | -------------------------------------------------------------------------------- /src/web/assets/timepicker/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve('timepicker/jquery.timepicker.min.js'), 14 | to: 'jquery.timepicker.js', 15 | }, 16 | ], 17 | }), 18 | ], 19 | }, 20 | }); 21 | -------------------------------------------------------------------------------- /src/elements/conditions/tags/TagCondition.php: -------------------------------------------------------------------------------- 1 | 11 | * @since 4.0.0 12 | */ 13 | class TagCondition extends ElementCondition 14 | { 15 | /** 16 | * @inheritdoc 17 | */ 18 | protected function conditionRuleTypes(): array 19 | { 20 | return array_merge(parent::conditionRuleTypes(), [ 21 | GroupConditionRule::class, 22 | ]); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/errors/FsObjectExistsException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 4.0.0 15 | */ 16 | class FsObjectExistsException extends FsException 17 | { 18 | /** 19 | * @inheritdoc 20 | */ 21 | public function getName(): string 22 | { 23 | return 'Filesystem object exists'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/errors/ImageTransformException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 4.0.0 15 | */ 16 | class ImageTransformException extends AssetException 17 | { 18 | /** 19 | * @inheritdoc 20 | */ 21 | public function getName(): string 22 | { 23 | return 'Image Transform Error'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/events/ElementCriteriaEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.4.16 17 | */ 18 | class ElementCriteriaEvent extends Event 19 | { 20 | /** 21 | * @var array The criteria that should be used to query for elements. 22 | */ 23 | public array $criteria = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/icons/magnifying-glass.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /src/web/assets/jquerypayment/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve('jquery.payment/lib/jquery.payment.min.js'), 14 | to: 'jquery.payment.js', 15 | }, 16 | ], 17 | }), 18 | ], 19 | }, 20 | }); 21 | -------------------------------------------------------------------------------- /src/events/FieldElementEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class FieldElementEvent extends ModelEvent 19 | { 20 | /** 21 | * @var ElementInterface The element associated with this event 22 | */ 23 | public ElementInterface $element; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/PluginEvent.php: -------------------------------------------------------------------------------- 1 | 17 | * @since 3.0.0 18 | */ 19 | class PluginEvent extends Event 20 | { 21 | /** 22 | * @var PluginInterface The plugin associated with this event 23 | */ 24 | public PluginInterface $plugin; 25 | } 26 | -------------------------------------------------------------------------------- /src/events/RegisterComponentTypesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterComponentTypesEvent extends Event 19 | { 20 | /** 21 | * @var string[] List of registered component types classes. 22 | */ 23 | public array $types = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RegisterUserPermissionsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterUserPermissionsEvent extends Event 19 | { 20 | /** 21 | * @var array List of registered user permissions. 22 | */ 23 | public array $permissions = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/errors/FsObjectNotFoundException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 4.0.0 15 | */ 16 | class FsObjectNotFoundException extends FsException 17 | { 18 | /** 19 | * @inheritdoc 20 | */ 21 | public function getName(): string 22 | { 23 | return 'Filesystem object not found'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/icons/shopping-cart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/events/RegisterCacheOptionsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterCacheOptionsEvent extends Event 19 | { 20 | /** 21 | * @var array List of registered cache options for the Clear Caches tool. 22 | */ 23 | public array $options = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/test/internal/example-test-suite/codeception.yml: -------------------------------------------------------------------------------- 1 | actor: Tester 2 | paths: 3 | tests: tests 4 | log: tests/_output 5 | data: tests/_data 6 | support: tests/_support 7 | envs: tests/_envs 8 | bootstrap: _bootstrap.php 9 | settings: 10 | params: 11 | - tests/.env 12 | modules: 13 | config: 14 | \craft\test\Craft: 15 | configFile: 'tests/_craft/config/test.php' 16 | entryUrl: 'https://your-site-url.test/index.php' 17 | projectConfig: {} 18 | migrations: [] 19 | plugins: [] 20 | cleanup: true 21 | transaction: true 22 | dbSetup: {clean: true, setupCraft: true} 23 | -------------------------------------------------------------------------------- /src/web/assets/craftsupport/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | entry: { 10 | CraftSupportWidget: './CraftSupportWidget.js', 11 | }, 12 | plugins: [ 13 | new CopyWebpackPlugin({ 14 | patterns: [ 15 | { 16 | from: './logos', 17 | to: './logos', 18 | }, 19 | ], 20 | }), 21 | ], 22 | }, 23 | }); 24 | -------------------------------------------------------------------------------- /src/web/assets/jquery/dist/jquery.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * Sizzle CSS Selector Engine v2.3.6 3 | * https://sizzlejs.com/ 4 | * 5 | * Copyright JS Foundation and other contributors 6 | * Released under the MIT license 7 | * https://js.foundation/ 8 | * 9 | * Date: 2021-02-16 10 | */ 11 | 12 | /*! 13 | * jQuery JavaScript Library v3.6.0 14 | * https://jquery.com/ 15 | * 16 | * Includes Sizzle.js 17 | * https://sizzlejs.com/ 18 | * 19 | * Copyright OpenJS Foundation and other contributors 20 | * Released under the MIT license 21 | * https://jquery.org/license 22 | * 23 | * Date: 2021-03-02T17:08Z 24 | */ 25 | -------------------------------------------------------------------------------- /src/events/DeleteTemplateCachesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.2 17 | */ 18 | class DeleteTemplateCachesEvent extends Event 19 | { 20 | /** 21 | * @var int[] Array of template cache IDs that are associated with this event 22 | */ 23 | public array $cacheIds; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RegisterGqlArgumentHandlersEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.6.0 17 | */ 18 | class RegisterGqlArgumentHandlersEvent extends Event 19 | { 20 | /** 21 | * @var array[] List of Argument handler class names. 22 | */ 23 | public array $handlers = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/migrations/m220214_000000_truncate_sessions.php: -------------------------------------------------------------------------------- 1 | truncateTable(Table::SESSIONS); 19 | return true; 20 | } 21 | 22 | /** 23 | * @inheritdoc 24 | */ 25 | public function safeDown(): bool 26 | { 27 | return true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/templates/_layouts/message.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/base" %} 2 | {% set bodyClass = 'message' %} 3 | 4 | {% block body %} 5 |
    6 |
    7 | {% block message %}{% endblock %} 8 |
    9 |
    10 | {% endblock %} 11 | 12 | {% block foot %} 13 | 18 | {% endblock %} 19 | -------------------------------------------------------------------------------- /src/CraftTrait.php: -------------------------------------------------------------------------------- 1 | 15 | * @since 3.5.12.1 16 | */ 17 | trait CraftTrait 18 | { 19 | /** 20 | * @var WebApplication|ConsoleApplication|null 21 | */ 22 | public static WebApplication|ConsoleApplication|null $app = null; 23 | } 24 | -------------------------------------------------------------------------------- /src/web/assets/htmx/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const MergeIntoSingleFilePlugin = require('webpack-merge-and-include-globally'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | entry: {}, 10 | plugins: [ 11 | new MergeIntoSingleFilePlugin({ 12 | files: { 13 | 'htmx.min.js': [ 14 | require.resolve('htmx.org/dist/htmx.js'), 15 | require.resolve('./src/htmx.js'), 16 | ], 17 | }, 18 | }), 19 | ], 20 | }, 21 | }); 22 | -------------------------------------------------------------------------------- /src/base/LocalFsInterface.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 4.0.0 15 | */ 16 | interface LocalFsInterface 17 | { 18 | /** 19 | * Return the root path of the FS. 20 | * 21 | * @return string 22 | */ 23 | public function getRootPath(): string; 24 | } 25 | -------------------------------------------------------------------------------- /src/errors/DbConnectException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class DbConnectException extends UserException 19 | { 20 | /** 21 | * @inheritdoc 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Database Connection Error'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/events/ElementQueryEvent.php: -------------------------------------------------------------------------------- 1 | 17 | * @since 3.2.0 18 | */ 19 | class ElementQueryEvent extends Event 20 | { 21 | /** 22 | * @var ElementQueryInterface The element query. 23 | */ 24 | public ElementQueryInterface $query; 25 | } 26 | -------------------------------------------------------------------------------- /src/events/RegisterElementSortOptionsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterElementSortOptionsEvent extends Event 19 | { 20 | /** 21 | * @var array List of registered sort options for the element type. 22 | */ 23 | public array $sortOptions = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/errors/AssetConflictException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class AssetConflictException extends AssetException 17 | { 18 | /** 19 | * @return string the user-friendly name of this exception 20 | */ 21 | public function getName(): string 22 | { 23 | return 'Action conflict'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/errors/AssetOperationException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class AssetOperationException extends AssetException 17 | { 18 | /** 19 | * @return string the user-friendly name of this exception 20 | */ 21 | public function getName(): string 22 | { 23 | return 'Asset Logic Error'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/events/SetElementRouteEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class SetElementRouteEvent extends Event 19 | { 20 | /** 21 | * @var mixed The route that should be used for the element, or `null` if no special action should be taken 22 | */ 23 | public mixed $route = null; 24 | } 25 | -------------------------------------------------------------------------------- /src/errors/GqlException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.3.0 17 | */ 18 | class GqlException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'GraphQL exception'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/UserNotFoundException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class UserNotFoundException extends ElementNotFoundException 17 | { 18 | /** 19 | * @return string the user-friendly name of this exception 20 | */ 21 | public function getName(): string 22 | { 23 | return 'User not found'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/events/ElementContentEvent.php: -------------------------------------------------------------------------------- 1 | 17 | * @since 3.0.0 18 | */ 19 | class ElementContentEvent extends Event 20 | { 21 | /** 22 | * @var ElementInterface The element model associated with the event. 23 | */ 24 | public ElementInterface $element; 25 | } 26 | -------------------------------------------------------------------------------- /src/events/RegisterElementHtmlAttributesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterElementHtmlAttributesEvent extends Event 19 | { 20 | /** 21 | * @var array List of registered HTML attributes for the element 22 | */ 23 | public array $htmlAttributes = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RegisterPreviewTargetsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.2.0 17 | */ 18 | class RegisterPreviewTargetsEvent extends Event 19 | { 20 | /** 21 | * @var array The additional locations that should be available for previewing the element. 22 | */ 23 | public array $previewTargets; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/TransformImageEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 4.0.0 17 | */ 18 | class TransformImageEvent extends AssetEvent 19 | { 20 | /** 21 | * @var ImageTransformIndex Image transform index that is being generated. 22 | */ 23 | public ImageTransformIndex $transformIndex; 24 | } 25 | -------------------------------------------------------------------------------- /src/templates/_components/utilities/DbBackup.twig: -------------------------------------------------------------------------------- 1 | {% import "_includes/forms" as forms %} 2 | 3 |
    4 | {{ actionInput('utilities/db-backup-perform-action') }} 5 | {{ csrfInput() }} 6 | 7 | {{ forms.checkbox({ 8 | name: 'downloadBackup', 9 | id: 'download-backup', 10 | label: 'Download backup'|t('app'), 11 | checked: true, 12 | }) }} 13 | 14 |
    15 | 16 |
    17 |
    18 |
    19 | -------------------------------------------------------------------------------- /src/templates/settings/plugins/_settings.twig: -------------------------------------------------------------------------------- 1 | {% requireAdmin %} 2 | 3 | {% set crumbs = [ 4 | { label: "Settings"|t('app'), url: url('settings') }, 5 | { label: "Plugins"|t('app'), url: url('settings/plugins') } 6 | ] %} 7 | 8 | {% set fullPageForm = true %} 9 | 10 | 11 | {% extends "_layouts/cp" %} 12 | {% set title = plugin.name %} 13 | {% set docTitle = title ~ ' - ' ~ "Plugins"|t('app') %} 14 | 15 | 16 | {% block content %} 17 | {{ actionInput('plugins/save-plugin-settings') }} 18 | {{ hiddenInput('pluginHandle', plugin.handle) }} 19 | {{ redirectInput('settings') }} 20 | {{ settingsHtml|raw }} 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /src/errors/AssetException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class AssetException extends UserException 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Asset Error'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/FileException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class FileException extends UserException 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'File Exception'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/VolumeException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class VolumeException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Volume Exception'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/db/QueryAbortedException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class QueryAbortedException extends Exception 19 | { 20 | /** 21 | * @return string The user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Query Aborted Exception'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/ImageException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class ImageException extends UserException 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Image Exception'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/events/EditionChangeEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class EditionChangeEvent extends Event 19 | { 20 | /** 21 | * @var int The old edition 22 | */ 23 | public int $oldEdition; 24 | 25 | /** 26 | * @var int The new edition 27 | */ 28 | public int $newEdition; 29 | } 30 | -------------------------------------------------------------------------------- /src/events/RegisterElementTableAttributesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterElementTableAttributesEvent extends Event 19 | { 20 | /** 21 | * @var array List of registered table attributes for the element type. 22 | */ 23 | public array $tableAttributes = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/mail/transportadapters/BaseTransportAdapter.php: -------------------------------------------------------------------------------- 1 | 18 | * @since 3.0.0 19 | */ 20 | abstract class BaseTransportAdapter extends ConfigurableComponent implements TransportAdapterInterface 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /src/templates/_includes/forms/file.twig: -------------------------------------------------------------------------------- 1 | {% set inputAttributes = { 2 | type: 'file', 3 | id: id ?? false, 4 | class: (class ?? [])|explodeClass, 5 | name: name ?? false, 6 | autofocus: (autofocus ?? false) and not craft.app.request.isMobileBrowser(true), 7 | disabled: disabled ?? false, 8 | aria: { 9 | describedby: describedBy ?? false, 10 | } 11 | }|merge(inputAttributes ?? [], recursive=true) %} 12 | 13 | {%- if block('attr') is defined %} 14 | {%- set inputAttributes = inputAttributes|merge(('
    ')|parseAttr, recursive=true) %} 15 | {% endif %} 16 | 17 | {{ tag('input', inputAttributes) }} 18 | -------------------------------------------------------------------------------- /src/web/assets/fabric/FabricAsset.php: -------------------------------------------------------------------------------- 1 | sourcePath = __DIR__ . '/dist'; 23 | 24 | $this->js = [ 25 | 'fabric.js', 26 | ]; 27 | 28 | parent::init(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/templates/_layouts/components/notifications.twig: -------------------------------------------------------------------------------- 1 |
    2 | {% for type in ['cp-notice', 'cp-error'] %} 3 | {% set icon = type == 'cp-error' ? 'alert' : 'info' %} 4 | {% set label = type == 'cp-error' ? 'Error'|t('app') : 'Notice'|t('app') %} 5 | {% set message = craft.app.session.getFlash(type) %} 6 | 7 | {% if message %} 8 |
    9 | 10 | {{ message }} 11 |
    12 | {% endif %} 13 | {% endfor %} 14 |
    15 | -------------------------------------------------------------------------------- /src/templates/users/index.twig: -------------------------------------------------------------------------------- 1 | {% if CraftEdition != CraftPro %} 2 | {% exit 404 %} 3 | {% endif %} 4 | 5 | {% requirePermission 'editUsers' %} 6 | 7 | {% extends "_layouts/elementindex" %} 8 | {% set title = "Users"|t('app') %} 9 | {% set elementType = 'craft\\elements\\User' %} 10 | 11 | {% block actionButton %} 12 | {% if currentUser.can('registerUsers') %} 13 | {{ "New user"|t('app') }} 14 | {% endif %} 15 | {% endblock %} 16 | 17 | {% if source is defined %} 18 | {% js %} 19 | window.defaultSourceSlug = "{{ source|e('js') }}"; 20 | {% endjs %} 21 | {% endif %} 22 | -------------------------------------------------------------------------------- /src/errors/AssetNotIndexableException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 4.0.0 15 | */ 16 | class AssetNotIndexableException extends AssetException 17 | { 18 | /** 19 | * @return string the user-friendly name of this exception 20 | */ 21 | public function getName(): string 22 | { 23 | return 'Asset or folder not indexable'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/errors/SiteNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class SiteNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Site not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/WrongEditionException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class WrongEditionException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Wrong edition'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/events/InvalidUserTokenEvent.php: -------------------------------------------------------------------------------- 1 | 17 | * @since 3.6.5 18 | */ 19 | class InvalidUserTokenEvent extends Event 20 | { 21 | /** 22 | * @var User|null The user account the request is associated with, if a valid user UID was passed. 23 | */ 24 | public ?User $user = null; 25 | } 26 | -------------------------------------------------------------------------------- /src/icons/bullhorn.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /src/web/assets/iframeresizer/IframeResizerAsset.php: -------------------------------------------------------------------------------- 1 | sourcePath = __DIR__ . '/dist'; 23 | 24 | $this->js = [ 25 | 'velocity.js', 26 | ]; 27 | 28 | parent::init(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/web/assets/xregexp/XregexpAsset.php: -------------------------------------------------------------------------------- 1 | sourcePath = __dir__ . '/dist'; 23 | 24 | $this->js = [ 25 | 'xregexp-all.js', 26 | ]; 27 | 28 | parent::init(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/errors/BusyResourceException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.7.35 17 | */ 18 | class BusyResourceException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Resource is busy'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/GlobalSetNotFoundException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class GlobalSetNotFoundException extends ElementNotFoundException 17 | { 18 | /** 19 | * @return string the user-friendly name of this exception 20 | */ 21 | public function getName(): string 22 | { 23 | return 'Global set not found'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/errors/RouteNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RouteNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Route not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/TokenNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class TokenNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Token not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/events/RegisterElementSearchableAttributesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterElementSearchableAttributesEvent extends Event 19 | { 20 | /** 21 | * @var array List of registered searchable attributes for the element type. 22 | */ 23 | public array $attributes = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/templates/_includes/forms/volume.twig: -------------------------------------------------------------------------------- 1 | {% set id = id ?? "volume#{random()}" %} 2 | 3 | {% set addOptionFn %} 4 | (createOption, selectize) => { 5 | const slideout = new Craft.CpScreenSlideout('volumes/edit-volume'); 6 | slideout.on('submit', ev => { 7 | createOption({ 8 | text: ev.data.name, 9 | value: ev.data.id, 10 | }); 11 | }); 12 | slideout.on('close', () => { 13 | selectize.focus(); 14 | }); 15 | } 16 | {% endset %} 17 | 18 | {% include '_includes/forms/selectize' with { 19 | options: options ?? craft.cp.getVolumeOptions(), 20 | addOptionLabel: 'Create a new volume…'|t('app'), 21 | } %} 22 | -------------------------------------------------------------------------------- /src/web/assets/jquerytouchevents/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve( 14 | '@benmajor/jquery-touch-events/src/jquery.mobile-events.min.js' 15 | ), 16 | to: 'jquery.mobile-events.js', 17 | }, 18 | ], 19 | }), 20 | ], 21 | }, 22 | }); 23 | -------------------------------------------------------------------------------- /src/errors/StaleResourceException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.7.35 17 | */ 18 | class StaleResourceException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Resource is stale'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/WidgetNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class WidgetNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Widget not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/icons/file.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/templates/_layouts/components/crumbs.twig: -------------------------------------------------------------------------------- 1 |
    2 | 3 | {% if crumbs %} 4 | 11 | {% endif %} 12 |
    13 | -------------------------------------------------------------------------------- /src/web/assets/elementresizedetector/webpack.config.js: -------------------------------------------------------------------------------- 1 | /* jshint esversion: 6 */ 2 | /* globals module, require, __dirname */ 3 | const {getConfig} = require('@craftcms/webpack'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = getConfig({ 7 | context: __dirname, 8 | config: { 9 | plugins: [ 10 | new CopyWebpackPlugin({ 11 | patterns: [ 12 | { 13 | from: require.resolve( 14 | 'element-resize-detector/dist/element-resize-detector.min.js' 15 | ), 16 | to: 'element-resize-detector.js', 17 | }, 18 | ], 19 | }), 20 | ], 21 | }, 22 | }); 23 | -------------------------------------------------------------------------------- /src/errors/ElementNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class ElementNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Element not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/OperationAbortedException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class OperationAbortedException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Operation aborted'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/SectionNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class SectionNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Section not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/events/DefineElementEditorHtmlEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 4.0.0 17 | */ 18 | class DefineElementEditorHtmlEvent extends DefineHtmlEvent 19 | { 20 | /** 21 | * @var ElementInterface The element being edited. 22 | */ 23 | public ElementInterface $element; 24 | } 25 | -------------------------------------------------------------------------------- /src/events/RegisterConditionRuleTypesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 4.0.0 17 | */ 18 | class RegisterConditionRuleTypesEvent extends Event 19 | { 20 | /** 21 | * @var string[]|array[] The condition rules types. 22 | * @phpstan-var string[]|array{class:string}[] 23 | */ 24 | public array $conditionRuleTypes = []; 25 | } 26 | -------------------------------------------------------------------------------- /src/events/ReplaceAssetEvent.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class ReplaceAssetEvent extends AssetEvent 17 | { 18 | /** 19 | * @var string file on server that is being used to replace 20 | */ 21 | public string $replaceWith; 22 | 23 | /** 24 | * @var string the file name that will be used 25 | */ 26 | public string $filename; 27 | } 28 | -------------------------------------------------------------------------------- /src/elements/conditions/addresses/AddressCondition.php: -------------------------------------------------------------------------------- 1 | 11 | * @since 4.0.0 12 | */ 13 | class AddressCondition extends ElementCondition 14 | { 15 | /** 16 | * @inheritdoc 17 | */ 18 | protected function conditionRuleTypes(): array 19 | { 20 | return array_merge(parent::conditionRuleTypes(), [ 21 | CountryConditionRule::class, 22 | AdministrativeAreaConditionRule::class, 23 | ]); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/errors/AssetDisallowedExtensionException.php: -------------------------------------------------------------------------------- 1 | 14 | * @since 3.0.0 15 | */ 16 | class AssetDisallowedExtensionException extends AssetException 17 | { 18 | /** 19 | * @return string the user-friendly name of this exception 20 | */ 21 | public function getName(): string 22 | { 23 | return 'Disallowed asset extension'; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/errors/StructureNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class StructureNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Structure not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/TagGroupNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class TagGroupNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Tag group not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/web/assets/picturefill/PicturefillAsset.php: -------------------------------------------------------------------------------- 1 | sourcePath = __DIR__ . '/dist'; 23 | 24 | $this->js = [ 25 | 'picturefill.js', 26 | ]; 27 | 28 | parent::init(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/errors/EntryTypeNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class EntryTypeNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Entry type not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/FieldGroupNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class FieldGroupNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Field group not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/SiteGroupNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class SiteGroupNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Site group not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/errors/UserGroupNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class UserGroupNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'User group not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/events/AssetEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class AssetEvent extends CancelableEvent 19 | { 20 | /** 21 | * @var Asset The asset model associated with the event. 22 | */ 23 | public Asset $asset; 24 | 25 | /** 26 | * @var bool Whether the asset is brand new 27 | */ 28 | public bool $isNew = false; 29 | } 30 | -------------------------------------------------------------------------------- /src/events/RegisterEmailMessagesEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class RegisterEmailMessagesEvent extends Event 19 | { 20 | /** 21 | * @var array List of registered email messages. Each message should contain 'key' and optionally 'heading', 'subject', and 'body' keys. 22 | */ 23 | public array $messages = []; 24 | } 25 | -------------------------------------------------------------------------------- /src/icons/craft-partners.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/templates/_includes/forms/fs.twig: -------------------------------------------------------------------------------- 1 | {% set id = id ?? "fs#{random()}" %} 2 | 3 | {% set addOptionFn %} 4 | (createOption, selectize) => { 5 | const slideout = new Craft.CpScreenSlideout('fs/edit'); 6 | slideout.on('submit', ev => { 7 | createOption({ 8 | text: ev.data.name, 9 | value: ev.data.handle, 10 | hint: ev.data.handle, 11 | }); 12 | }); 13 | slideout.on('close', () => { 14 | selectize.focus(); 15 | }); 16 | } 17 | {% endset %} 18 | 19 | {% include '_includes/forms/selectize' with { 20 | options: options ?? craft.cp.getFsOptions(), 21 | addOptionLabel: 'Create a new filesystem…'|t('app'), 22 | } %} 23 | -------------------------------------------------------------------------------- /src/web/assets/datepickeri18n/dist/datepicker-ko.js: -------------------------------------------------------------------------------- 1 | !function(e){"use strict";"function"==typeof define&&define.amd?define(["../widgets/datepicker"],e):e(jQuery.datepicker)}((function(e){"use strict";return e.regional.ko={closeText:"닫기",prevText:"이전달",nextText:"다음달",currentText:"오늘",monthNames:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthNamesShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayNames:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],dayNamesShort:["일","월","화","수","목","금","토"],dayNamesMin:["일","월","화","수","목","금","토"],weekHeader:"주",dateFormat:"yy. m. d.",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"년"},e.setDefaults(e.regional.ko),e.regional.ko})); -------------------------------------------------------------------------------- /src/web/assets/jquerypayment/JqueryPaymentAsset.php: -------------------------------------------------------------------------------- 1 | sourcePath = __DIR__ . '/dist'; 23 | 24 | $this->js = [ 25 | 'jquery.payment.js', 26 | ]; 27 | 28 | parent::init(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/events/RegisterGqlTypesEvent.php: -------------------------------------------------------------------------------- 1 | 17 | * @since 3.3.0 18 | */ 19 | class RegisterGqlTypesEvent extends Event 20 | { 21 | /** 22 | * @var string[] List of GraphQL Type definition classes 23 | * @phpstan-var class-string[] 24 | */ 25 | public array $types = []; 26 | } 27 | -------------------------------------------------------------------------------- /src/migrations/m220104_003433_asset_alt_text.php: -------------------------------------------------------------------------------- 1 | addColumn(Table::ASSETS, 'alt', $this->text()->after('kind')); 19 | return true; 20 | } 21 | 22 | /** 23 | * @inheritdoc 24 | */ 25 | public function safeDown(): bool 26 | { 27 | $this->dropColumn(Table::ASSETS, 'alt'); 28 | return true; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/base/MissingComponentInterface.php: -------------------------------------------------------------------------------- 1 | 17 | * @since 3.0.0 18 | */ 19 | interface MissingComponentInterface 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /src/errors/CategoryGroupNotFoundException.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.0.0 17 | */ 18 | class CategoryGroupNotFoundException extends Exception 19 | { 20 | /** 21 | * @return string the user-friendly name of this exception 22 | */ 23 | public function getName(): string 24 | { 25 | return 'Category group not found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/events/DefineAttributeKeywordsEvent.php: -------------------------------------------------------------------------------- 1 | 16 | * @since 3.5.0 17 | */ 18 | class DefineAttributeKeywordsEvent extends Event 19 | { 20 | /** 21 | * @var string $attribute The element attribute 22 | */ 23 | public string $attribute; 24 | 25 | /** 26 | * @var string $keywords 27 | */ 28 | public string $keywords = ''; 29 | } 30 | --------------------------------------------------------------------------------