From ab09f41b2774bff516318a8e66104d549faca039 Mon Sep 17 00:00:00 2001 From: "taeyoung.hong" Date: Tue, 18 Mar 2025 17:13:04 +0900 Subject: [PATCH 1/5] WRR-21630: Add Limestone Samples in samples repo --- tutorial-typescript/package.json | 16 ++++++++-------- tutorial-typescript/src/App/App.tsx | 4 ++-- .../src/components/Counter/Counter.tsx | 2 +- tutorial-typescript/src/views/MainPanel.tsx | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tutorial-typescript/package.json b/tutorial-typescript/package.json index 86b0ae706..dfd6000de 100644 --- a/tutorial-typescript/package.json +++ b/tutorial-typescript/package.json @@ -19,7 +19,7 @@ "private": true, "repository": "", "enact": { - "theme": "sandstone" + "theme": "limestone" }, "eslintConfig": { "extends": "enact-proxy" @@ -30,21 +30,21 @@ "dist/*" ], "dependencies": { - "@enact/core": "^4.9.4", - "@enact/i18n": "^4.9.4", - "@enact/sandstone": "^2.9.5", - "@enact/spotlight": "^4.9.4", - "@enact/ui": "^4.9.4", + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", "@types/node": "^22.9.1", "@types/react": "^19.0.7", "@types/react-dom": "^19.0.3", - "ilib": "^14.20.0", + "ilib": "^14.21.0", "prop-types": "^15.8.1", "react": "^19.0.0", "react-dom": "^19.0.0", "typescript": "^5.6.3" }, "devDependencies": { - "eslint-config-enact-proxy": "^1.0.8" + "eslint-config-enact-proxy": "^1.0.9" } } diff --git a/tutorial-typescript/src/App/App.tsx b/tutorial-typescript/src/App/App.tsx index 950a682eb..df98f9409 100644 --- a/tutorial-typescript/src/App/App.tsx +++ b/tutorial-typescript/src/App/App.tsx @@ -1,6 +1,6 @@ import kind from '@enact/core/kind'; -import Panels from '@enact/sandstone/Panels'; -import ThemeDecorator from '@enact/sandstone/ThemeDecorator'; +import Panels from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; import MainPanel from '../views/MainPanel'; diff --git a/tutorial-typescript/src/components/Counter/Counter.tsx b/tutorial-typescript/src/components/Counter/Counter.tsx index 123c6b991..99d7dd955 100644 --- a/tutorial-typescript/src/components/Counter/Counter.tsx +++ b/tutorial-typescript/src/components/Counter/Counter.tsx @@ -1,6 +1,6 @@ import {adaptEvent, forward, handle} from '@enact/core/handle'; import kind from '@enact/core/kind'; -import Button from '@enact/sandstone/Button'; +import Button from '@enact/limestone/Button'; import Changeable from '@enact/ui/Changeable'; interface Props { diff --git a/tutorial-typescript/src/views/MainPanel.tsx b/tutorial-typescript/src/views/MainPanel.tsx index eacaf613c..f8435ed56 100644 --- a/tutorial-typescript/src/views/MainPanel.tsx +++ b/tutorial-typescript/src/views/MainPanel.tsx @@ -1,5 +1,5 @@ import kind from '@enact/core/kind'; -import {Header, Panel} from '@enact/sandstone/Panels'; +import {Header, Panel} from '@enact/limestone/Panels'; // Custom component import Counter from '../components/Counter'; From 391d57db2a4ab84601f16602eb863dd97a27b354 Mon Sep 17 00:00:00 2001 From: "taeyoung.hong" Date: Tue, 18 Mar 2025 17:25:38 +0900 Subject: [PATCH 2/5] Update travis.yml --- .travis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fd77a8bdc..225a4744c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,6 @@ install: - npm install script: - echo -e "\x1b\x5b35;1m*** Starting eslint...\x1b\x5b0m" - - rm tutorial-typescript -rf # Skip the test until CLI fixed the related issue(WRO-521) - npm run lint - echo -e "\x1b\x5b35;1m*** eslint complete\x1b\x5b0m" - echo -e "\x1b\x5b35;1m*** Starting agate/all-samples build...\x1b\x5b0m" @@ -22,6 +21,12 @@ script: - npm run pack - cd ../../ - echo -e "\x1b\x5b35;1m*** agate/all-samples build complete\x1b\x5b0m" + - echo -e "\x1b\x5b35;1m*** Starting limestone/all-samples build...\x1b\x5b0m" + - cd limestone/all-samples + - npm install + - npm run pack + - cd ../../ + - echo -e "\x1b\x5b35;1m*** limestone/all-samples build complete\x1b\x5b0m" - echo -e "\x1b\x5b35;1m*** Starting moonstone/all-samples build...\x1b\x5b0m" - cd moonstone/all-samples - npm install From 0f6dec8c5b8d7f1230e2d504bf0cfacfe4efde0d Mon Sep 17 00:00:00 2001 From: "taeyoung.hong" Date: Tue, 18 Mar 2025 17:41:15 +0900 Subject: [PATCH 3/5] Update travis.yml 2 --- .travis.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 225a4744c..c48f6a8cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,12 +21,6 @@ script: - npm run pack - cd ../../ - echo -e "\x1b\x5b35;1m*** agate/all-samples build complete\x1b\x5b0m" - - echo -e "\x1b\x5b35;1m*** Starting limestone/all-samples build...\x1b\x5b0m" - - cd limestone/all-samples - - npm install - - npm run pack - - cd ../../ - - echo -e "\x1b\x5b35;1m*** limestone/all-samples build complete\x1b\x5b0m" - echo -e "\x1b\x5b35;1m*** Starting moonstone/all-samples build...\x1b\x5b0m" - cd moonstone/all-samples - npm install @@ -45,6 +39,12 @@ script: - npm run pack - cd ../../ - echo -e "\x1b\x5b35;1m*** ui/all-samples build complete\x1b\x5b0m" + - echo -e "\x1b\x5b35;1m*** Starting limestone/all-samples build...\x1b\x5b0m" + - cd limestone/all-samples + - npm install + - npm run pack + - cd ../../ + - echo -e "\x1b\x5b35;1m*** limestone/all-samples build complete\x1b\x5b0m" - echo -e "\x1b\x5b35;1m*** Starting my-theme-app build...\x1b\x5b0m" - cd my-theme-app - npm install From e13271133465a68a52ecb68d90f3fb929b128970 Mon Sep 17 00:00:00 2001 From: "taeyoung.hong" Date: Tue, 18 Mar 2025 17:46:43 +0900 Subject: [PATCH 4/5] Add limestone folder --- .travis.yml | 12 +- limestone/all-samples/.eslintignore | 3 + limestone/all-samples/.gitignore | 15 + limestone/all-samples/LICENSE | 201 +++++++ limestone/all-samples/README.md | 3 + .../all-samples/assets/images/butterfly.jpg | Bin 0 -> 118643 bytes limestone/all-samples/assets/images/car.jpeg | Bin 0 -> 29446 bytes limestone/all-samples/assets/images/city.jpeg | Bin 0 -> 43969 bytes .../all-samples/assets/images/details.jpg | Bin 0 -> 45687 bytes .../assets/images/favorites-list.jpg | Bin 0 -> 28857 bytes .../assets/images/frozenwaterfall.jpg | Bin 0 -> 315434 bytes .../all-samples/assets/images/jellyfish.jpg | Bin 0 -> 52574 bytes limestone/all-samples/assets/images/macaw.jpg | Bin 0 -> 139149 bytes .../all-samples/assets/images/mural.jpeg | Bin 0 -> 45224 bytes .../all-samples/assets/images/ornaments.jpg | Bin 0 -> 94030 bytes .../all-samples/assets/images/rainbow.jpg | Bin 0 -> 97284 bytes .../assets/images/space-shuttle.jpg | Bin 0 -> 12380 bytes .../all-samples/assets/images/violin.jpeg | Bin 0 -> 14128 bytes limestone/all-samples/package.json | 54 ++ .../all-samples/resources/ilibmanifest.json | 3 + limestone/all-samples/src/App/App.js | 111 ++++ limestone/all-samples/src/App/App.module.less | 3 + limestone/all-samples/src/App/package.json | 3 + .../ButtonToSamples/ButtonToSamples.js | 19 + .../ButtonToSamples.module.less | 22 + .../components/ButtonToSamples/package.json | 3 + .../all-samples/src/components/README.md | 1 + .../src/components/SampleItem/SampleItem.js | 22 + .../src/components/SampleItem/package.json | 3 + limestone/all-samples/src/index.js | 29 + limestone/all-samples/src/views/README.md | 1 + limestone/all-samples/webos-meta/appinfo.json | 12 + .../all-samples/webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../all-samples/webos-meta/icon-mini.png | Bin 0 -> 2004 bytes limestone/all-samples/webos-meta/icon.png | Bin 0 -> 2562 bytes .../feature-custom-skin-generator/.gitignore | 15 + .../README-devs.md | 33 ++ .../feature-custom-skin-generator/README.md | 21 + .../package.json | 47 ++ .../resources/ilibmanifest.json | 3 + .../screenTypes.json | 9 + .../src/App/App.js | 27 + .../src/App/App.module.less | 10 + .../src/App/package.json | 3 + .../src/common/styles.module.less | 51 ++ .../src/components/AutoPopup/AutoPopup.js | 93 ++++ .../src/components/ColorField/ColorField.js | 72 +++ .../src/components/ColorFields/ColorFields.js | 86 +++ .../src/components/ColorPicker/ColorPicker.js | 118 ++++ .../ColorPicker/ColorPicker.module.less | 33 ++ .../src/components/ImportSkin/ImportSkin.js | 220 ++++++++ .../ImportSkin/ImportSkin.module.less | 11 + .../src/components/NameField/NameField.js | 103 ++++ .../NameField/NameField.module.less | 20 + .../src/components/OutputField/OutputField.js | 202 +++++++ .../OutputField/OutputField.module.less | 48 ++ .../src/components/SingleField/SingleField.js | 109 ++++ .../SingleField/SingleField.module.less | 17 + .../src/components/TripleField/TripleField.js | 141 +++++ .../TripleField/TripleField.module.less | 32 ++ .../src/constants.js | 504 ++++++++++++++++++ .../src/index.js | 19 + .../src/utils.js | 221 ++++++++ .../src/views/MainPanel.js | 409 ++++++++++++++ .../src/views/MainPanel.module.less | 96 ++++ limestone/pattern-account-icon/.eslintignore | 3 + limestone/pattern-account-icon/.gitignore | 15 + limestone/pattern-account-icon/LICENSE | 201 +++++++ limestone/pattern-account-icon/README.md | 9 + limestone/pattern-account-icon/package.json | 45 ++ .../resources/ilibmanifest.json | 3 + limestone/pattern-account-icon/src/App/App.js | 24 + .../pattern-account-icon/src/App/package.json | 3 + .../src/components/AccountIcon.js | 21 + .../src/components/AccountIcon.module.less | 6 + .../src/components/README.md | 1 + limestone/pattern-account-icon/src/index.js | 19 + .../src/views/MainPanel.js | 42 ++ .../src/views/MainPanel.module.less | 18 + .../pattern-account-icon/src/views/README.md | 1 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../pattern-account-icon/webos-meta/icon.png | Bin 0 -> 2562 bytes .../pattern-analytics-webostv/.eslintignore | 3 + .../pattern-analytics-webostv/.gitignore | 15 + limestone/pattern-analytics-webostv/LICENSE | 201 +++++++ limestone/pattern-analytics-webostv/README.md | 9 + .../pattern-analytics-webostv/analytics.cfg | 25 + .../pattern-analytics-webostv/package.json | 45 ++ .../resources/ilibmanifest.json | 3 + .../pattern-analytics-webostv/src/App/App.js | 26 + .../src/App/App.module.less | 3 + .../src/App/package.json | 3 + .../src/components/README.md | 1 + .../pattern-analytics-webostv/src/index.js | 68 +++ .../src/views/MainPanel.js | 22 + .../src/views/README.md | 1 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../webos-meta/icon.png | Bin 0 -> 2562 bytes limestone/pattern-dynamic-panel/.eslintignore | 3 + limestone/pattern-dynamic-panel/.gitignore | 15 + limestone/pattern-dynamic-panel/LICENSE | 201 +++++++ limestone/pattern-dynamic-panel/README.md | 25 + .../assets/images/butterfly.jpg | Bin 0 -> 118643 bytes .../assets/images/frozenwaterfall.jpg | Bin 0 -> 315434 bytes .../assets/images/jellyfish.jpg | Bin 0 -> 52574 bytes .../assets/images/macaw.jpg | Bin 0 -> 139149 bytes .../assets/images/ornaments.jpg | Bin 0 -> 94030 bytes .../assets/images/rainbow.jpg | Bin 0 -> 97284 bytes limestone/pattern-dynamic-panel/package.json | 46 ++ .../resources/ilibmanifest.json | 3 + .../pattern-dynamic-panel/src/App/App.js | 33 ++ .../src/App/App.module.less | 3 + .../src/App/package.json | 3 + .../components/DynamicPanel/DynamicPanel.js | 26 + .../src/components/DynamicPanel/package.json | 3 + .../src/components/FileBrowser/FileBrowser.js | 161 ++++++ .../src/components/FileBrowser/package.json | 3 + .../src/components/README.md | 1 + limestone/pattern-dynamic-panel/src/index.js | 19 + .../pattern-dynamic-panel/src/views/README.md | 1 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../pattern-dynamic-panel/webos-meta/icon.png | Bin 0 -> 2562 bytes limestone/pattern-layout/.eslintignore | 3 + limestone/pattern-layout/.gitignore | 15 + limestone/pattern-layout/README.md | 17 + .../pattern-layout/assets/images/details.jpg | Bin 0 -> 45687 bytes .../assets/images/favorites-list.jpg | Bin 0 -> 28857 bytes limestone/pattern-layout/package.json | 45 ++ .../resources/ilibmanifest.json | 3 + limestone/pattern-layout/src/App/App.js | 138 +++++ limestone/pattern-layout/src/App/App.less | 3 + limestone/pattern-layout/src/App/package.json | 3 + .../pattern-layout/src/components/README.md | 1 + .../pattern-layout/src/components/util.js | 23 + limestone/pattern-layout/src/index.js | 52 ++ limestone/pattern-layout/src/views/Details.js | 79 +++ .../pattern-layout/src/views/FavoritesList.js | 86 +++ .../pattern-layout/src/views/MainPanel.js | 93 ++++ limestone/pattern-layout/src/views/README.md | 1 + .../pattern-layout/webos-meta/appinfo.json | 12 + .../pattern-layout/webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../pattern-layout/webos-meta/icon-mini.png | Bin 0 -> 2004 bytes limestone/pattern-layout/webos-meta/icon.png | Bin 0 -> 2562 bytes .../pattern-locale-switching/.eslintignore | 3 + limestone/pattern-locale-switching/.gitignore | 15 + limestone/pattern-locale-switching/LICENSE | 201 +++++++ limestone/pattern-locale-switching/README.md | 7 + .../pattern-locale-switching/package.json | 49 ++ .../resources/ilibmanifest.json | 3 + .../pattern-locale-switching/src/App/App.js | 36 ++ .../src/App/App.module.less | 3 + .../src/App/package.json | 3 + .../components/LocaleSwitch/LocaleSwitch.js | 38 ++ .../src/components/LocaleSwitch/package.json | 3 + .../src/components/README.md | 1 + .../pattern-locale-switching/src/index.js | 19 + .../pattern-locale-switching/src/main.js | 19 + .../src/store/index.js | 20 + .../src/views/MainPanel.js | 17 + .../src/views/README.md | 1 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../webos-meta/icon.png | Bin 0 -> 2562 bytes .../pattern-ls2request-camera/.eslintignore | 3 + .../pattern-ls2request-camera/.gitignore | 15 + limestone/pattern-ls2request-camera/LICENSE | 201 +++++++ limestone/pattern-ls2request-camera/README.md | 32 ++ .../pattern-ls2request-camera/package.json | 49 ++ .../resources/ilibmanifest.json | 3 + .../pattern-ls2request-camera/src/App/App.js | 14 + .../src/App/package.json | 3 + .../src/components/CameraView.js | 86 +++ .../pattern-ls2request-camera/src/index.js | 19 + .../pattern-ls2request-camera/src/main.js | 12 + .../src/store/package.json | 3 + .../src/store/store.js | 164 ++++++ .../src/views/MainPanel.js | 17 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../webos-meta/icon.png | Bin 0 -> 2562 bytes limestone/pattern-react18-new/.gitignore | 19 + limestone/pattern-react18-new/package.json | 47 ++ .../resources/ilibmanifest.json | 3 + limestone/pattern-react18-new/src/App/App.js | 32 ++ .../src/App/App.module.less | 8 + .../pattern-react18-new/src/App/package.json | 3 + limestone/pattern-react18-new/src/index.js | 19 + .../src/views/Batching/BatchedAssign.js | 55 ++ .../src/views/Batching/Batching.js | 35 ++ .../src/views/Batching/NotBatchedAssign.js | 60 +++ .../src/views/Batching/package.json | 3 + .../src/views/Suspense/NoSuspense.js | 24 + .../src/views/Suspense/SamplePage.js | 54 ++ .../src/views/Suspense/SkeletonPage.js | 40 ++ .../src/views/Suspense/Suspense.js | 49 ++ .../src/views/Suspense/package.json | 3 + .../src/views/Suspense/placeholder.jpg | Bin 0 -> 1397 bytes .../src/views/UseTransition/Content.js | 56 ++ .../src/views/UseTransition/FakeApi.js | 43 ++ .../src/views/UseTransition/UseTransition.js | 93 ++++ .../UseTransition/UseTransition.module.less | 25 + .../src/views/UseTransition/package.json | 3 + .../pattern-routable-panels/.eslintignore | 3 + limestone/pattern-routable-panels/.gitignore | 15 + limestone/pattern-routable-panels/LICENSE | 201 +++++++ limestone/pattern-routable-panels/README.md | 35 ++ .../pattern-routable-panels/package.json | 48 ++ .../resources/ilibmanifest.json | 3 + .../pattern-routable-panels/src/App/App.js | 47 ++ .../src/App/App.module.less | 3 + .../src/App/AppStateDecorator.js | 18 + .../src/App/package.json | 3 + .../src/components/README.md | 1 + .../pattern-routable-panels/src/index.js | 19 + limestone/pattern-routable-panels/src/main.js | 22 + .../src/store/index.js | 30 ++ .../src/views/AboutPanel.js | 59 ++ .../src/views/MainPanel.js | 33 ++ .../src/views/README.md | 1 + .../src/views/RouteTree.js | 16 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../webos-meta/icon.png | Bin 0 -> 2562 bytes .../pattern-single-panel-redux/.eslintignore | 3 + .../pattern-single-panel-redux/.gitignore | 15 + limestone/pattern-single-panel-redux/LICENSE | 201 +++++++ .../pattern-single-panel-redux/README.md | 31 ++ .../assets/images/car.jpeg | Bin 0 -> 29446 bytes .../assets/images/city.jpeg | Bin 0 -> 43969 bytes .../assets/images/mural.jpeg | Bin 0 -> 45224 bytes .../assets/images/space-shuttle.jpg | Bin 0 -> 12380 bytes .../assets/images/violin.jpeg | Bin 0 -> 14128 bytes .../pattern-single-panel-redux/package.json | 48 ++ .../resources/ilibmanifest.json | 3 + .../pattern-single-panel-redux/src/App/App.js | 27 + .../src/App/App.module.less | 3 + .../src/App/package.json | 3 + .../src/components/PhotoPicker.js | 47 ++ .../src/components/PhotoSlider.js | 35 ++ .../src/components/SaveButton.js | 33 ++ .../src/components/SavedPopup.js | 34 ++ .../components/componentStyles.module.less | 3 + .../src/containers/FooterContainer.js | 47 ++ .../src/containers/PhotoPickerContainer.js | 26 + .../src/containers/PhotoPreviewContainer.js | 43 ++ .../src/containers/PhotoSliderContainer.js | 27 + .../containers/containerStyles.module.less | 4 + .../pattern-single-panel-redux/src/index.js | 19 + .../pattern-single-panel-redux/src/main.js | 22 + .../src/store/package.json | 3 + .../src/store/store.js | 39 ++ .../src/views/MainPanel.js | 66 +++ .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../webos-meta/icon.png | Bin 0 -> 2562 bytes limestone/pattern-single-panel/.eslintignore | 3 + limestone/pattern-single-panel/.gitignore | 15 + limestone/pattern-single-panel/LICENSE | 201 +++++++ limestone/pattern-single-panel/README.md | 33 ++ .../assets/images/car.jpeg | Bin 0 -> 29446 bytes .../assets/images/city.jpeg | Bin 0 -> 43969 bytes .../assets/images/mural.jpeg | Bin 0 -> 45224 bytes .../assets/images/space-shuttle.jpg | Bin 0 -> 12380 bytes .../assets/images/violin.jpeg | Bin 0 -> 14128 bytes limestone/pattern-single-panel/package.json | 45 ++ .../resources/ilibmanifest.json | 3 + limestone/pattern-single-panel/src/App/App.js | 27 + .../src/App/App.module.less | 3 + .../pattern-single-panel/src/App/package.json | 3 + .../src/components/ProfilePhotoPicker.js | 81 +++ .../components/ProfilePhotoPicker.module.less | 8 + .../src/components/README.md | 1 + .../src/components/SaveButton.js | 23 + .../tests/ProfilePhotoPicker-specs.js | 45 ++ .../src/components/tests/SaveButton-specs.js | 31 ++ limestone/pattern-single-panel/src/index.js | 19 + .../src/views/MainPanel.js | 24 + .../pattern-single-panel/src/views/README.md | 1 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../pattern-single-panel/webos-meta/icon.png | Bin 0 -> 2562 bytes .../pattern-video-player-custom/.eslintignore | 3 + .../pattern-video-player-custom/.gitignore | 15 + limestone/pattern-video-player-custom/LICENSE | 201 +++++++ .../pattern-video-player-custom/README.md | 29 + .../pattern-video-player-custom/package.json | 46 ++ .../resources/ilibmanifest.json | 3 + .../src/App/App.js | 240 +++++++++ .../src/App/App.module.less | 7 + .../src/App/package.json | 3 + .../src/App/subtitle-en.vtt | 80 +++ .../src/App/subtitle-ko.vtt | 80 +++ .../src/App/videos.js | 26 + .../src/components/README.md | 1 + .../pattern-video-player-custom/src/index.js | 19 + .../src/views/README.md | 1 + .../src/views/SubtitleSelectionPanel.js | 87 +++ .../src/views/VideoSelectionPanel.js | 74 +++ .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../webos-meta/icon.png | Bin 0 -> 2562 bytes limestone/pattern-video-player/.eslintignore | 3 + limestone/pattern-video-player/.gitignore | 15 + limestone/pattern-video-player/LICENSE | 201 +++++++ limestone/pattern-video-player/README.md | 21 + limestone/pattern-video-player/package.json | 45 ++ .../resources/ilibmanifest.json | 3 + limestone/pattern-video-player/src/App/App.js | 107 ++++ .../src/App/App.module.less | 7 + .../pattern-video-player/src/App/package.json | 3 + .../pattern-video-player/src/App/videos.js | 30 ++ .../src/components/README.md | 1 + limestone/pattern-video-player/src/index.js | 19 + .../src/views/ItemPanel.js | 28 + .../src/views/MainPanel.js | 81 +++ .../pattern-video-player/src/views/README.md | 1 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../pattern-video-player/webos-meta/icon.png | Bin 0 -> 2562 bytes .../pattern-virtualgridlist-api/.eslintignore | 3 + .../pattern-virtualgridlist-api/.gitignore | 15 + limestone/pattern-virtualgridlist-api/LICENSE | 201 +++++++ .../pattern-virtualgridlist-api/README.md | 17 + .../pattern-virtualgridlist-api/package.json | 48 ++ .../resources/ilibmanifest.json | 3 + .../src/App/App.js | 26 + .../src/App/App.module.less | 8 + .../src/App/package.json | 3 + .../GalleryPanelHeader/GalleryPanelHeader.js | 121 +++++ .../GalleryPanelHeader/package.json | 3 + .../src/components/ImageItem/ImageItem.js | 54 ++ .../src/components/ImageItem/package.json | 3 + .../src/components/ImageList/ImageList.js | 33 ++ .../src/components/ImageList/package.json | 3 + .../src/components/SideBar/SideBar.js | 44 ++ .../components/SideBar/SideBar.module.less | 3 + .../src/components/SideBar/package.json | 3 + .../pattern-virtualgridlist-api/src/index.js | 19 + .../pattern-virtualgridlist-api/src/main.js | 22 + .../src/store/index.js | 127 +++++ .../src/views/AppStateDecorator.js | 18 + .../src/views/MainView.js | 59 ++ .../src/views/MainView.module.less | 21 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../webos-meta/icon.png | Bin 0 -> 2562 bytes .../.gitignore | 15 + .../README.md | 18 + .../package.json | 46 ++ .../resources/ilibmanifest.json | 3 + .../src/App/App.js | 27 + .../src/App/App.module.less | 8 + .../src/App/package.json | 3 + .../src/components/README.md | 1 + .../src/index.js | 17 + .../src/views/MainView.js | 89 ++++ .../src/views/README.md | 1 + .../.eslintignore | 3 + .../.gitignore | 15 + .../LICENSE | 201 +++++++ .../README.md | 69 +++ .../package.json | 48 ++ .../resources/ilibmanifest.json | 3 + .../src/App/App.js | 50 ++ .../src/App/App.module.less | 3 + .../src/App/package.json | 3 + .../src/components/README.md | 1 + .../src/index.js | 19 + .../src/main.js | 22 + .../src/store/package.json | 3 + .../src/store/store.js | 34 ++ .../src/views/MainPanel.js | 35 ++ .../src/views/PatternList.js | 37 ++ .../src/views/PatternList.module.less | 5 + .../src/views/README.md | 1 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../webos-meta/icon.png | Bin 0 -> 2562 bytes limestone/tutorial-hello-enact/.eslintignore | 3 + limestone/tutorial-hello-enact/.gitignore | 15 + limestone/tutorial-hello-enact/LICENSE | 201 +++++++ limestone/tutorial-hello-enact/README.md | 9 + limestone/tutorial-hello-enact/package.json | 43 ++ .../resources/ilibmanifest.json | 3 + limestone/tutorial-hello-enact/src/App/App.js | 29 + .../src/App/App.module.less | 3 + .../tutorial-hello-enact/src/App/package.json | 3 + .../src/components/README.md | 1 + limestone/tutorial-hello-enact/src/index.js | 19 + .../tutorial-hello-enact/src/views/README.md | 1 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../tutorial-hello-enact/webos-meta/icon.png | Bin 0 -> 2562 bytes .../tutorial-kitten-browser/.eslintignore | 3 + limestone/tutorial-kitten-browser/.gitignore | 15 + limestone/tutorial-kitten-browser/LICENSE | 201 +++++++ limestone/tutorial-kitten-browser/README.md | 9 + .../tutorial-kitten-browser/package.json | 44 ++ .../resources/ilibmanifest.json | 3 + .../tutorial-kitten-browser/src/App/App.js | 75 +++ .../src/App/App.module.less | 3 + .../src/App/package.json | 3 + .../src/components/Kitten/Kitten.js | 61 +++ .../src/components/Kitten/Kitten.module.less | 12 + .../src/components/Kitten/package.json | 3 + .../components/Kitten/tests/Kitten-specs.js | 34 ++ .../src/components/README.md | 1 + .../tutorial-kitten-browser/src/index.js | 20 + .../src/views/Detail.js | 40 ++ .../tutorial-kitten-browser/src/views/List.js | 33 ++ .../src/views/README.md | 1 + .../webos-meta/appinfo.json | 12 + .../webos-meta/icon-large.png | Bin 0 -> 4151 bytes .../webos-meta/icon-mini.png | Bin 0 -> 2004 bytes .../webos-meta/icon.png | Bin 0 -> 2562 bytes 431 files changed, 13057 insertions(+), 6 deletions(-) create mode 100644 limestone/all-samples/.eslintignore create mode 100644 limestone/all-samples/.gitignore create mode 100644 limestone/all-samples/LICENSE create mode 100644 limestone/all-samples/README.md create mode 100644 limestone/all-samples/assets/images/butterfly.jpg create mode 100644 limestone/all-samples/assets/images/car.jpeg create mode 100644 limestone/all-samples/assets/images/city.jpeg create mode 100644 limestone/all-samples/assets/images/details.jpg create mode 100644 limestone/all-samples/assets/images/favorites-list.jpg create mode 100644 limestone/all-samples/assets/images/frozenwaterfall.jpg create mode 100644 limestone/all-samples/assets/images/jellyfish.jpg create mode 100644 limestone/all-samples/assets/images/macaw.jpg create mode 100644 limestone/all-samples/assets/images/mural.jpeg create mode 100644 limestone/all-samples/assets/images/ornaments.jpg create mode 100644 limestone/all-samples/assets/images/rainbow.jpg create mode 100644 limestone/all-samples/assets/images/space-shuttle.jpg create mode 100644 limestone/all-samples/assets/images/violin.jpeg create mode 100644 limestone/all-samples/package.json create mode 100644 limestone/all-samples/resources/ilibmanifest.json create mode 100644 limestone/all-samples/src/App/App.js create mode 100644 limestone/all-samples/src/App/App.module.less create mode 100644 limestone/all-samples/src/App/package.json create mode 100644 limestone/all-samples/src/components/ButtonToSamples/ButtonToSamples.js create mode 100644 limestone/all-samples/src/components/ButtonToSamples/ButtonToSamples.module.less create mode 100644 limestone/all-samples/src/components/ButtonToSamples/package.json create mode 100644 limestone/all-samples/src/components/README.md create mode 100644 limestone/all-samples/src/components/SampleItem/SampleItem.js create mode 100644 limestone/all-samples/src/components/SampleItem/package.json create mode 100644 limestone/all-samples/src/index.js create mode 100644 limestone/all-samples/src/views/README.md create mode 100644 limestone/all-samples/webos-meta/appinfo.json create mode 100644 limestone/all-samples/webos-meta/icon-large.png create mode 100644 limestone/all-samples/webos-meta/icon-mini.png create mode 100644 limestone/all-samples/webos-meta/icon.png create mode 100644 limestone/feature-custom-skin-generator/.gitignore create mode 100644 limestone/feature-custom-skin-generator/README-devs.md create mode 100644 limestone/feature-custom-skin-generator/README.md create mode 100644 limestone/feature-custom-skin-generator/package.json create mode 100644 limestone/feature-custom-skin-generator/resources/ilibmanifest.json create mode 100644 limestone/feature-custom-skin-generator/screenTypes.json create mode 100644 limestone/feature-custom-skin-generator/src/App/App.js create mode 100644 limestone/feature-custom-skin-generator/src/App/App.module.less create mode 100644 limestone/feature-custom-skin-generator/src/App/package.json create mode 100644 limestone/feature-custom-skin-generator/src/common/styles.module.less create mode 100644 limestone/feature-custom-skin-generator/src/components/AutoPopup/AutoPopup.js create mode 100644 limestone/feature-custom-skin-generator/src/components/ColorField/ColorField.js create mode 100644 limestone/feature-custom-skin-generator/src/components/ColorFields/ColorFields.js create mode 100644 limestone/feature-custom-skin-generator/src/components/ColorPicker/ColorPicker.js create mode 100644 limestone/feature-custom-skin-generator/src/components/ColorPicker/ColorPicker.module.less create mode 100644 limestone/feature-custom-skin-generator/src/components/ImportSkin/ImportSkin.js create mode 100644 limestone/feature-custom-skin-generator/src/components/ImportSkin/ImportSkin.module.less create mode 100644 limestone/feature-custom-skin-generator/src/components/NameField/NameField.js create mode 100644 limestone/feature-custom-skin-generator/src/components/NameField/NameField.module.less create mode 100644 limestone/feature-custom-skin-generator/src/components/OutputField/OutputField.js create mode 100644 limestone/feature-custom-skin-generator/src/components/OutputField/OutputField.module.less create mode 100644 limestone/feature-custom-skin-generator/src/components/SingleField/SingleField.js create mode 100644 limestone/feature-custom-skin-generator/src/components/SingleField/SingleField.module.less create mode 100644 limestone/feature-custom-skin-generator/src/components/TripleField/TripleField.js create mode 100644 limestone/feature-custom-skin-generator/src/components/TripleField/TripleField.module.less create mode 100644 limestone/feature-custom-skin-generator/src/constants.js create mode 100644 limestone/feature-custom-skin-generator/src/index.js create mode 100644 limestone/feature-custom-skin-generator/src/utils.js create mode 100644 limestone/feature-custom-skin-generator/src/views/MainPanel.js create mode 100644 limestone/feature-custom-skin-generator/src/views/MainPanel.module.less create mode 100644 limestone/pattern-account-icon/.eslintignore create mode 100644 limestone/pattern-account-icon/.gitignore create mode 100644 limestone/pattern-account-icon/LICENSE create mode 100644 limestone/pattern-account-icon/README.md create mode 100644 limestone/pattern-account-icon/package.json create mode 100644 limestone/pattern-account-icon/resources/ilibmanifest.json create mode 100644 limestone/pattern-account-icon/src/App/App.js create mode 100644 limestone/pattern-account-icon/src/App/package.json create mode 100644 limestone/pattern-account-icon/src/components/AccountIcon.js create mode 100644 limestone/pattern-account-icon/src/components/AccountIcon.module.less create mode 100644 limestone/pattern-account-icon/src/components/README.md create mode 100644 limestone/pattern-account-icon/src/index.js create mode 100644 limestone/pattern-account-icon/src/views/MainPanel.js create mode 100644 limestone/pattern-account-icon/src/views/MainPanel.module.less create mode 100644 limestone/pattern-account-icon/src/views/README.md create mode 100644 limestone/pattern-account-icon/webos-meta/appinfo.json create mode 100644 limestone/pattern-account-icon/webos-meta/icon-large.png create mode 100644 limestone/pattern-account-icon/webos-meta/icon-mini.png create mode 100644 limestone/pattern-account-icon/webos-meta/icon.png create mode 100644 limestone/pattern-analytics-webostv/.eslintignore create mode 100644 limestone/pattern-analytics-webostv/.gitignore create mode 100644 limestone/pattern-analytics-webostv/LICENSE create mode 100644 limestone/pattern-analytics-webostv/README.md create mode 100644 limestone/pattern-analytics-webostv/analytics.cfg create mode 100644 limestone/pattern-analytics-webostv/package.json create mode 100644 limestone/pattern-analytics-webostv/resources/ilibmanifest.json create mode 100644 limestone/pattern-analytics-webostv/src/App/App.js create mode 100644 limestone/pattern-analytics-webostv/src/App/App.module.less create mode 100644 limestone/pattern-analytics-webostv/src/App/package.json create mode 100644 limestone/pattern-analytics-webostv/src/components/README.md create mode 100644 limestone/pattern-analytics-webostv/src/index.js create mode 100644 limestone/pattern-analytics-webostv/src/views/MainPanel.js create mode 100644 limestone/pattern-analytics-webostv/src/views/README.md create mode 100644 limestone/pattern-analytics-webostv/webos-meta/appinfo.json create mode 100644 limestone/pattern-analytics-webostv/webos-meta/icon-large.png create mode 100644 limestone/pattern-analytics-webostv/webos-meta/icon-mini.png create mode 100644 limestone/pattern-analytics-webostv/webos-meta/icon.png create mode 100644 limestone/pattern-dynamic-panel/.eslintignore create mode 100644 limestone/pattern-dynamic-panel/.gitignore create mode 100644 limestone/pattern-dynamic-panel/LICENSE create mode 100644 limestone/pattern-dynamic-panel/README.md create mode 100644 limestone/pattern-dynamic-panel/assets/images/butterfly.jpg create mode 100644 limestone/pattern-dynamic-panel/assets/images/frozenwaterfall.jpg create mode 100644 limestone/pattern-dynamic-panel/assets/images/jellyfish.jpg create mode 100644 limestone/pattern-dynamic-panel/assets/images/macaw.jpg create mode 100644 limestone/pattern-dynamic-panel/assets/images/ornaments.jpg create mode 100644 limestone/pattern-dynamic-panel/assets/images/rainbow.jpg create mode 100644 limestone/pattern-dynamic-panel/package.json create mode 100644 limestone/pattern-dynamic-panel/resources/ilibmanifest.json create mode 100644 limestone/pattern-dynamic-panel/src/App/App.js create mode 100644 limestone/pattern-dynamic-panel/src/App/App.module.less create mode 100644 limestone/pattern-dynamic-panel/src/App/package.json create mode 100644 limestone/pattern-dynamic-panel/src/components/DynamicPanel/DynamicPanel.js create mode 100644 limestone/pattern-dynamic-panel/src/components/DynamicPanel/package.json create mode 100644 limestone/pattern-dynamic-panel/src/components/FileBrowser/FileBrowser.js create mode 100644 limestone/pattern-dynamic-panel/src/components/FileBrowser/package.json create mode 100644 limestone/pattern-dynamic-panel/src/components/README.md create mode 100644 limestone/pattern-dynamic-panel/src/index.js create mode 100644 limestone/pattern-dynamic-panel/src/views/README.md create mode 100644 limestone/pattern-dynamic-panel/webos-meta/appinfo.json create mode 100644 limestone/pattern-dynamic-panel/webos-meta/icon-large.png create mode 100644 limestone/pattern-dynamic-panel/webos-meta/icon-mini.png create mode 100644 limestone/pattern-dynamic-panel/webos-meta/icon.png create mode 100644 limestone/pattern-layout/.eslintignore create mode 100644 limestone/pattern-layout/.gitignore create mode 100644 limestone/pattern-layout/README.md create mode 100644 limestone/pattern-layout/assets/images/details.jpg create mode 100644 limestone/pattern-layout/assets/images/favorites-list.jpg create mode 100644 limestone/pattern-layout/package.json create mode 100644 limestone/pattern-layout/resources/ilibmanifest.json create mode 100644 limestone/pattern-layout/src/App/App.js create mode 100644 limestone/pattern-layout/src/App/App.less create mode 100644 limestone/pattern-layout/src/App/package.json create mode 100644 limestone/pattern-layout/src/components/README.md create mode 100644 limestone/pattern-layout/src/components/util.js create mode 100644 limestone/pattern-layout/src/index.js create mode 100644 limestone/pattern-layout/src/views/Details.js create mode 100644 limestone/pattern-layout/src/views/FavoritesList.js create mode 100644 limestone/pattern-layout/src/views/MainPanel.js create mode 100644 limestone/pattern-layout/src/views/README.md create mode 100644 limestone/pattern-layout/webos-meta/appinfo.json create mode 100644 limestone/pattern-layout/webos-meta/icon-large.png create mode 100644 limestone/pattern-layout/webos-meta/icon-mini.png create mode 100644 limestone/pattern-layout/webos-meta/icon.png create mode 100644 limestone/pattern-locale-switching/.eslintignore create mode 100644 limestone/pattern-locale-switching/.gitignore create mode 100644 limestone/pattern-locale-switching/LICENSE create mode 100644 limestone/pattern-locale-switching/README.md create mode 100644 limestone/pattern-locale-switching/package.json create mode 100644 limestone/pattern-locale-switching/resources/ilibmanifest.json create mode 100644 limestone/pattern-locale-switching/src/App/App.js create mode 100644 limestone/pattern-locale-switching/src/App/App.module.less create mode 100644 limestone/pattern-locale-switching/src/App/package.json create mode 100644 limestone/pattern-locale-switching/src/components/LocaleSwitch/LocaleSwitch.js create mode 100644 limestone/pattern-locale-switching/src/components/LocaleSwitch/package.json create mode 100644 limestone/pattern-locale-switching/src/components/README.md create mode 100644 limestone/pattern-locale-switching/src/index.js create mode 100644 limestone/pattern-locale-switching/src/main.js create mode 100644 limestone/pattern-locale-switching/src/store/index.js create mode 100644 limestone/pattern-locale-switching/src/views/MainPanel.js create mode 100644 limestone/pattern-locale-switching/src/views/README.md create mode 100644 limestone/pattern-locale-switching/webos-meta/appinfo.json create mode 100644 limestone/pattern-locale-switching/webos-meta/icon-large.png create mode 100644 limestone/pattern-locale-switching/webos-meta/icon-mini.png create mode 100644 limestone/pattern-locale-switching/webos-meta/icon.png create mode 100644 limestone/pattern-ls2request-camera/.eslintignore create mode 100644 limestone/pattern-ls2request-camera/.gitignore create mode 100644 limestone/pattern-ls2request-camera/LICENSE create mode 100644 limestone/pattern-ls2request-camera/README.md create mode 100644 limestone/pattern-ls2request-camera/package.json create mode 100644 limestone/pattern-ls2request-camera/resources/ilibmanifest.json create mode 100644 limestone/pattern-ls2request-camera/src/App/App.js create mode 100644 limestone/pattern-ls2request-camera/src/App/package.json create mode 100644 limestone/pattern-ls2request-camera/src/components/CameraView.js create mode 100644 limestone/pattern-ls2request-camera/src/index.js create mode 100644 limestone/pattern-ls2request-camera/src/main.js create mode 100644 limestone/pattern-ls2request-camera/src/store/package.json create mode 100644 limestone/pattern-ls2request-camera/src/store/store.js create mode 100644 limestone/pattern-ls2request-camera/src/views/MainPanel.js create mode 100644 limestone/pattern-ls2request-camera/webos-meta/appinfo.json create mode 100644 limestone/pattern-ls2request-camera/webos-meta/icon-large.png create mode 100644 limestone/pattern-ls2request-camera/webos-meta/icon-mini.png create mode 100644 limestone/pattern-ls2request-camera/webos-meta/icon.png create mode 100644 limestone/pattern-react18-new/.gitignore create mode 100644 limestone/pattern-react18-new/package.json create mode 100644 limestone/pattern-react18-new/resources/ilibmanifest.json create mode 100644 limestone/pattern-react18-new/src/App/App.js create mode 100644 limestone/pattern-react18-new/src/App/App.module.less create mode 100644 limestone/pattern-react18-new/src/App/package.json create mode 100644 limestone/pattern-react18-new/src/index.js create mode 100644 limestone/pattern-react18-new/src/views/Batching/BatchedAssign.js create mode 100644 limestone/pattern-react18-new/src/views/Batching/Batching.js create mode 100644 limestone/pattern-react18-new/src/views/Batching/NotBatchedAssign.js create mode 100644 limestone/pattern-react18-new/src/views/Batching/package.json create mode 100644 limestone/pattern-react18-new/src/views/Suspense/NoSuspense.js create mode 100644 limestone/pattern-react18-new/src/views/Suspense/SamplePage.js create mode 100644 limestone/pattern-react18-new/src/views/Suspense/SkeletonPage.js create mode 100644 limestone/pattern-react18-new/src/views/Suspense/Suspense.js create mode 100644 limestone/pattern-react18-new/src/views/Suspense/package.json create mode 100644 limestone/pattern-react18-new/src/views/Suspense/placeholder.jpg create mode 100644 limestone/pattern-react18-new/src/views/UseTransition/Content.js create mode 100644 limestone/pattern-react18-new/src/views/UseTransition/FakeApi.js create mode 100644 limestone/pattern-react18-new/src/views/UseTransition/UseTransition.js create mode 100644 limestone/pattern-react18-new/src/views/UseTransition/UseTransition.module.less create mode 100644 limestone/pattern-react18-new/src/views/UseTransition/package.json create mode 100644 limestone/pattern-routable-panels/.eslintignore create mode 100644 limestone/pattern-routable-panels/.gitignore create mode 100644 limestone/pattern-routable-panels/LICENSE create mode 100644 limestone/pattern-routable-panels/README.md create mode 100644 limestone/pattern-routable-panels/package.json create mode 100644 limestone/pattern-routable-panels/resources/ilibmanifest.json create mode 100644 limestone/pattern-routable-panels/src/App/App.js create mode 100644 limestone/pattern-routable-panels/src/App/App.module.less create mode 100644 limestone/pattern-routable-panels/src/App/AppStateDecorator.js create mode 100644 limestone/pattern-routable-panels/src/App/package.json create mode 100644 limestone/pattern-routable-panels/src/components/README.md create mode 100644 limestone/pattern-routable-panels/src/index.js create mode 100644 limestone/pattern-routable-panels/src/main.js create mode 100644 limestone/pattern-routable-panels/src/store/index.js create mode 100644 limestone/pattern-routable-panels/src/views/AboutPanel.js create mode 100644 limestone/pattern-routable-panels/src/views/MainPanel.js create mode 100644 limestone/pattern-routable-panels/src/views/README.md create mode 100644 limestone/pattern-routable-panels/src/views/RouteTree.js create mode 100644 limestone/pattern-routable-panels/webos-meta/appinfo.json create mode 100644 limestone/pattern-routable-panels/webos-meta/icon-large.png create mode 100644 limestone/pattern-routable-panels/webos-meta/icon-mini.png create mode 100644 limestone/pattern-routable-panels/webos-meta/icon.png create mode 100644 limestone/pattern-single-panel-redux/.eslintignore create mode 100644 limestone/pattern-single-panel-redux/.gitignore create mode 100644 limestone/pattern-single-panel-redux/LICENSE create mode 100644 limestone/pattern-single-panel-redux/README.md create mode 100644 limestone/pattern-single-panel-redux/assets/images/car.jpeg create mode 100644 limestone/pattern-single-panel-redux/assets/images/city.jpeg create mode 100644 limestone/pattern-single-panel-redux/assets/images/mural.jpeg create mode 100644 limestone/pattern-single-panel-redux/assets/images/space-shuttle.jpg create mode 100644 limestone/pattern-single-panel-redux/assets/images/violin.jpeg create mode 100644 limestone/pattern-single-panel-redux/package.json create mode 100644 limestone/pattern-single-panel-redux/resources/ilibmanifest.json create mode 100644 limestone/pattern-single-panel-redux/src/App/App.js create mode 100644 limestone/pattern-single-panel-redux/src/App/App.module.less create mode 100644 limestone/pattern-single-panel-redux/src/App/package.json create mode 100644 limestone/pattern-single-panel-redux/src/components/PhotoPicker.js create mode 100644 limestone/pattern-single-panel-redux/src/components/PhotoSlider.js create mode 100644 limestone/pattern-single-panel-redux/src/components/SaveButton.js create mode 100644 limestone/pattern-single-panel-redux/src/components/SavedPopup.js create mode 100644 limestone/pattern-single-panel-redux/src/components/componentStyles.module.less create mode 100644 limestone/pattern-single-panel-redux/src/containers/FooterContainer.js create mode 100644 limestone/pattern-single-panel-redux/src/containers/PhotoPickerContainer.js create mode 100644 limestone/pattern-single-panel-redux/src/containers/PhotoPreviewContainer.js create mode 100644 limestone/pattern-single-panel-redux/src/containers/PhotoSliderContainer.js create mode 100644 limestone/pattern-single-panel-redux/src/containers/containerStyles.module.less create mode 100644 limestone/pattern-single-panel-redux/src/index.js create mode 100644 limestone/pattern-single-panel-redux/src/main.js create mode 100644 limestone/pattern-single-panel-redux/src/store/package.json create mode 100644 limestone/pattern-single-panel-redux/src/store/store.js create mode 100644 limestone/pattern-single-panel-redux/src/views/MainPanel.js create mode 100644 limestone/pattern-single-panel-redux/webos-meta/appinfo.json create mode 100644 limestone/pattern-single-panel-redux/webos-meta/icon-large.png create mode 100644 limestone/pattern-single-panel-redux/webos-meta/icon-mini.png create mode 100644 limestone/pattern-single-panel-redux/webos-meta/icon.png create mode 100644 limestone/pattern-single-panel/.eslintignore create mode 100644 limestone/pattern-single-panel/.gitignore create mode 100644 limestone/pattern-single-panel/LICENSE create mode 100644 limestone/pattern-single-panel/README.md create mode 100644 limestone/pattern-single-panel/assets/images/car.jpeg create mode 100644 limestone/pattern-single-panel/assets/images/city.jpeg create mode 100644 limestone/pattern-single-panel/assets/images/mural.jpeg create mode 100644 limestone/pattern-single-panel/assets/images/space-shuttle.jpg create mode 100644 limestone/pattern-single-panel/assets/images/violin.jpeg create mode 100644 limestone/pattern-single-panel/package.json create mode 100644 limestone/pattern-single-panel/resources/ilibmanifest.json create mode 100644 limestone/pattern-single-panel/src/App/App.js create mode 100644 limestone/pattern-single-panel/src/App/App.module.less create mode 100644 limestone/pattern-single-panel/src/App/package.json create mode 100644 limestone/pattern-single-panel/src/components/ProfilePhotoPicker.js create mode 100644 limestone/pattern-single-panel/src/components/ProfilePhotoPicker.module.less create mode 100644 limestone/pattern-single-panel/src/components/README.md create mode 100644 limestone/pattern-single-panel/src/components/SaveButton.js create mode 100644 limestone/pattern-single-panel/src/components/tests/ProfilePhotoPicker-specs.js create mode 100644 limestone/pattern-single-panel/src/components/tests/SaveButton-specs.js create mode 100644 limestone/pattern-single-panel/src/index.js create mode 100644 limestone/pattern-single-panel/src/views/MainPanel.js create mode 100644 limestone/pattern-single-panel/src/views/README.md create mode 100644 limestone/pattern-single-panel/webos-meta/appinfo.json create mode 100644 limestone/pattern-single-panel/webos-meta/icon-large.png create mode 100644 limestone/pattern-single-panel/webos-meta/icon-mini.png create mode 100644 limestone/pattern-single-panel/webos-meta/icon.png create mode 100644 limestone/pattern-video-player-custom/.eslintignore create mode 100644 limestone/pattern-video-player-custom/.gitignore create mode 100644 limestone/pattern-video-player-custom/LICENSE create mode 100644 limestone/pattern-video-player-custom/README.md create mode 100644 limestone/pattern-video-player-custom/package.json create mode 100644 limestone/pattern-video-player-custom/resources/ilibmanifest.json create mode 100644 limestone/pattern-video-player-custom/src/App/App.js create mode 100644 limestone/pattern-video-player-custom/src/App/App.module.less create mode 100644 limestone/pattern-video-player-custom/src/App/package.json create mode 100644 limestone/pattern-video-player-custom/src/App/subtitle-en.vtt create mode 100644 limestone/pattern-video-player-custom/src/App/subtitle-ko.vtt create mode 100644 limestone/pattern-video-player-custom/src/App/videos.js create mode 100644 limestone/pattern-video-player-custom/src/components/README.md create mode 100644 limestone/pattern-video-player-custom/src/index.js create mode 100644 limestone/pattern-video-player-custom/src/views/README.md create mode 100644 limestone/pattern-video-player-custom/src/views/SubtitleSelectionPanel.js create mode 100644 limestone/pattern-video-player-custom/src/views/VideoSelectionPanel.js create mode 100644 limestone/pattern-video-player-custom/webos-meta/appinfo.json create mode 100644 limestone/pattern-video-player-custom/webos-meta/icon-large.png create mode 100644 limestone/pattern-video-player-custom/webos-meta/icon-mini.png create mode 100644 limestone/pattern-video-player-custom/webos-meta/icon.png create mode 100644 limestone/pattern-video-player/.eslintignore create mode 100644 limestone/pattern-video-player/.gitignore create mode 100644 limestone/pattern-video-player/LICENSE create mode 100644 limestone/pattern-video-player/README.md create mode 100644 limestone/pattern-video-player/package.json create mode 100644 limestone/pattern-video-player/resources/ilibmanifest.json create mode 100644 limestone/pattern-video-player/src/App/App.js create mode 100644 limestone/pattern-video-player/src/App/App.module.less create mode 100644 limestone/pattern-video-player/src/App/package.json create mode 100644 limestone/pattern-video-player/src/App/videos.js create mode 100644 limestone/pattern-video-player/src/components/README.md create mode 100644 limestone/pattern-video-player/src/index.js create mode 100644 limestone/pattern-video-player/src/views/ItemPanel.js create mode 100644 limestone/pattern-video-player/src/views/MainPanel.js create mode 100644 limestone/pattern-video-player/src/views/README.md create mode 100644 limestone/pattern-video-player/webos-meta/appinfo.json create mode 100644 limestone/pattern-video-player/webos-meta/icon-large.png create mode 100644 limestone/pattern-video-player/webos-meta/icon-mini.png create mode 100644 limestone/pattern-video-player/webos-meta/icon.png create mode 100644 limestone/pattern-virtualgridlist-api/.eslintignore create mode 100644 limestone/pattern-virtualgridlist-api/.gitignore create mode 100644 limestone/pattern-virtualgridlist-api/LICENSE create mode 100644 limestone/pattern-virtualgridlist-api/README.md create mode 100644 limestone/pattern-virtualgridlist-api/package.json create mode 100644 limestone/pattern-virtualgridlist-api/resources/ilibmanifest.json create mode 100644 limestone/pattern-virtualgridlist-api/src/App/App.js create mode 100644 limestone/pattern-virtualgridlist-api/src/App/App.module.less create mode 100644 limestone/pattern-virtualgridlist-api/src/App/package.json create mode 100644 limestone/pattern-virtualgridlist-api/src/components/GalleryPanelHeader/GalleryPanelHeader.js create mode 100755 limestone/pattern-virtualgridlist-api/src/components/GalleryPanelHeader/package.json create mode 100644 limestone/pattern-virtualgridlist-api/src/components/ImageItem/ImageItem.js create mode 100644 limestone/pattern-virtualgridlist-api/src/components/ImageItem/package.json create mode 100644 limestone/pattern-virtualgridlist-api/src/components/ImageList/ImageList.js create mode 100644 limestone/pattern-virtualgridlist-api/src/components/ImageList/package.json create mode 100755 limestone/pattern-virtualgridlist-api/src/components/SideBar/SideBar.js create mode 100755 limestone/pattern-virtualgridlist-api/src/components/SideBar/SideBar.module.less create mode 100644 limestone/pattern-virtualgridlist-api/src/components/SideBar/package.json create mode 100644 limestone/pattern-virtualgridlist-api/src/index.js create mode 100644 limestone/pattern-virtualgridlist-api/src/main.js create mode 100755 limestone/pattern-virtualgridlist-api/src/store/index.js create mode 100644 limestone/pattern-virtualgridlist-api/src/views/AppStateDecorator.js create mode 100644 limestone/pattern-virtualgridlist-api/src/views/MainView.js create mode 100755 limestone/pattern-virtualgridlist-api/src/views/MainView.module.less create mode 100644 limestone/pattern-virtualgridlist-api/webos-meta/appinfo.json create mode 100644 limestone/pattern-virtualgridlist-api/webos-meta/icon-large.png create mode 100644 limestone/pattern-virtualgridlist-api/webos-meta/icon-mini.png create mode 100644 limestone/pattern-virtualgridlist-api/webos-meta/icon.png create mode 100644 limestone/pattern-virtualgridlist-incremental-load/.gitignore create mode 100644 limestone/pattern-virtualgridlist-incremental-load/README.md create mode 100644 limestone/pattern-virtualgridlist-incremental-load/package.json create mode 100644 limestone/pattern-virtualgridlist-incremental-load/resources/ilibmanifest.json create mode 100644 limestone/pattern-virtualgridlist-incremental-load/src/App/App.js create mode 100644 limestone/pattern-virtualgridlist-incremental-load/src/App/App.module.less create mode 100644 limestone/pattern-virtualgridlist-incremental-load/src/App/package.json create mode 100644 limestone/pattern-virtualgridlist-incremental-load/src/components/README.md create mode 100644 limestone/pattern-virtualgridlist-incremental-load/src/index.js create mode 100644 limestone/pattern-virtualgridlist-incremental-load/src/views/MainView.js create mode 100644 limestone/pattern-virtualgridlist-incremental-load/src/views/README.md create mode 100644 limestone/pattern-virtuallist-preserving-focus/.eslintignore create mode 100644 limestone/pattern-virtuallist-preserving-focus/.gitignore create mode 100644 limestone/pattern-virtuallist-preserving-focus/LICENSE create mode 100644 limestone/pattern-virtuallist-preserving-focus/README.md create mode 100644 limestone/pattern-virtuallist-preserving-focus/package.json create mode 100644 limestone/pattern-virtuallist-preserving-focus/resources/ilibmanifest.json create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/App/App.js create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/App/App.module.less create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/App/package.json create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/components/README.md create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/index.js create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/main.js create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/store/package.json create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/store/store.js create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/views/MainPanel.js create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/views/PatternList.js create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/views/PatternList.module.less create mode 100644 limestone/pattern-virtuallist-preserving-focus/src/views/README.md create mode 100644 limestone/pattern-virtuallist-preserving-focus/webos-meta/appinfo.json create mode 100644 limestone/pattern-virtuallist-preserving-focus/webos-meta/icon-large.png create mode 100644 limestone/pattern-virtuallist-preserving-focus/webos-meta/icon-mini.png create mode 100644 limestone/pattern-virtuallist-preserving-focus/webos-meta/icon.png create mode 100644 limestone/tutorial-hello-enact/.eslintignore create mode 100644 limestone/tutorial-hello-enact/.gitignore create mode 100644 limestone/tutorial-hello-enact/LICENSE create mode 100644 limestone/tutorial-hello-enact/README.md create mode 100644 limestone/tutorial-hello-enact/package.json create mode 100644 limestone/tutorial-hello-enact/resources/ilibmanifest.json create mode 100644 limestone/tutorial-hello-enact/src/App/App.js create mode 100644 limestone/tutorial-hello-enact/src/App/App.module.less create mode 100644 limestone/tutorial-hello-enact/src/App/package.json create mode 100644 limestone/tutorial-hello-enact/src/components/README.md create mode 100644 limestone/tutorial-hello-enact/src/index.js create mode 100644 limestone/tutorial-hello-enact/src/views/README.md create mode 100644 limestone/tutorial-hello-enact/webos-meta/appinfo.json create mode 100644 limestone/tutorial-hello-enact/webos-meta/icon-large.png create mode 100644 limestone/tutorial-hello-enact/webos-meta/icon-mini.png create mode 100644 limestone/tutorial-hello-enact/webos-meta/icon.png create mode 100644 limestone/tutorial-kitten-browser/.eslintignore create mode 100644 limestone/tutorial-kitten-browser/.gitignore create mode 100644 limestone/tutorial-kitten-browser/LICENSE create mode 100644 limestone/tutorial-kitten-browser/README.md create mode 100644 limestone/tutorial-kitten-browser/package.json create mode 100644 limestone/tutorial-kitten-browser/resources/ilibmanifest.json create mode 100644 limestone/tutorial-kitten-browser/src/App/App.js create mode 100644 limestone/tutorial-kitten-browser/src/App/App.module.less create mode 100644 limestone/tutorial-kitten-browser/src/App/package.json create mode 100644 limestone/tutorial-kitten-browser/src/components/Kitten/Kitten.js create mode 100644 limestone/tutorial-kitten-browser/src/components/Kitten/Kitten.module.less create mode 100644 limestone/tutorial-kitten-browser/src/components/Kitten/package.json create mode 100644 limestone/tutorial-kitten-browser/src/components/Kitten/tests/Kitten-specs.js create mode 100644 limestone/tutorial-kitten-browser/src/components/README.md create mode 100644 limestone/tutorial-kitten-browser/src/index.js create mode 100644 limestone/tutorial-kitten-browser/src/views/Detail.js create mode 100644 limestone/tutorial-kitten-browser/src/views/List.js create mode 100644 limestone/tutorial-kitten-browser/src/views/README.md create mode 100644 limestone/tutorial-kitten-browser/webos-meta/appinfo.json create mode 100644 limestone/tutorial-kitten-browser/webos-meta/icon-large.png create mode 100644 limestone/tutorial-kitten-browser/webos-meta/icon-mini.png create mode 100644 limestone/tutorial-kitten-browser/webos-meta/icon.png diff --git a/.travis.yml b/.travis.yml index c48f6a8cf..225a4744c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,12 @@ script: - npm run pack - cd ../../ - echo -e "\x1b\x5b35;1m*** agate/all-samples build complete\x1b\x5b0m" + - echo -e "\x1b\x5b35;1m*** Starting limestone/all-samples build...\x1b\x5b0m" + - cd limestone/all-samples + - npm install + - npm run pack + - cd ../../ + - echo -e "\x1b\x5b35;1m*** limestone/all-samples build complete\x1b\x5b0m" - echo -e "\x1b\x5b35;1m*** Starting moonstone/all-samples build...\x1b\x5b0m" - cd moonstone/all-samples - npm install @@ -39,12 +45,6 @@ script: - npm run pack - cd ../../ - echo -e "\x1b\x5b35;1m*** ui/all-samples build complete\x1b\x5b0m" - - echo -e "\x1b\x5b35;1m*** Starting limestone/all-samples build...\x1b\x5b0m" - - cd limestone/all-samples - - npm install - - npm run pack - - cd ../../ - - echo -e "\x1b\x5b35;1m*** limestone/all-samples build complete\x1b\x5b0m" - echo -e "\x1b\x5b35;1m*** Starting my-theme-app build...\x1b\x5b0m" - cd my-theme-app - npm install diff --git a/limestone/all-samples/.eslintignore b/limestone/all-samples/.eslintignore new file mode 100644 index 000000000..7de9f5fde --- /dev/null +++ b/limestone/all-samples/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/all-samples/.gitignore b/limestone/all-samples/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/all-samples/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/all-samples/LICENSE b/limestone/all-samples/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/all-samples/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/all-samples/README.md b/limestone/all-samples/README.md new file mode 100644 index 000000000..35b62b59a --- /dev/null +++ b/limestone/all-samples/README.md @@ -0,0 +1,3 @@ +### all-samples + +This application is a wrapper application that links to all of the other sample applications for limestone. diff --git a/limestone/all-samples/assets/images/butterfly.jpg b/limestone/all-samples/assets/images/butterfly.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be4a1e0d28b70aeaeba23447b5081b708a5f5c95 GIT binary patch literal 118643 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⁢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

l30C>9hiss7Iq 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 abb6qV2v^Kl_BU9!gV%-^EtIugfB)IYdcU;* literal 0 HcmV?d00001 diff --git a/limestone/all-samples/assets/images/details.jpg b/limestone/all-samples/assets/images/details.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a5b70df9639b08157a06dc52ebcb2dd1a486f21 GIT binary patch literal 45687 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 B{v`ka literal 0 HcmV?d00001 diff --git a/limestone/all-samples/assets/images/favorites-list.jpg b/limestone/all-samples/assets/images/favorites-list.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bfd409fc0f06682e16174717dd47592ca7d9245 GIT binary patch literal 28857 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 literal 0 HcmV?d00001 diff --git a/limestone/all-samples/assets/images/frozenwaterfall.jpg b/limestone/all-samples/assets/images/frozenwaterfall.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ad17a364ff32c0ca95908b4128a844f9f39b7a1 GIT binary patch literal 315434 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

    M@7l0Qbw`c>qfgAZ7>M2w#@g1=xp#K3ZrfzT)3k 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 LNFj{%Up@a1gZ30H literal 0 HcmV?d00001 diff --git a/limestone/all-samples/assets/images/macaw.jpg b/limestone/all-samples/assets/images/macaw.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5ca62ca4e001d8ad40c6d8d2fabfba5d0149631 GIT binary patch literal 139149 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

    8w9 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 afE51$5_b}Q!hSJ2_9&k5VbbjHm;V9WRiv~4 literal 0 HcmV?d00001 diff --git a/limestone/all-samples/assets/images/rainbow.jpg b/limestone/all-samples/assets/images/rainbow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..71accaf9245bd1ba9f1e8e5a7ee0953099d5bab5 GIT binary patch literal 97284 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𗺶uTlv>3E#hu(??=!VIezvDs+CJ*xfYM#@ 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

    _cq6yg_Wp~>$27vENt77 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 S{63n|NB;n?`I}aMC;!=K{xu8$ literal 0 HcmV?d00001 diff --git a/limestone/all-samples/assets/images/space-shuttle.jpg b/limestone/all-samples/assets/images/space-shuttle.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0cc3f1722476ad4f51130bb78a4cb51e3ef1ae2 GIT binary patch literal 12380 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 literal 0 HcmV?d00001 diff --git a/limestone/all-samples/assets/images/violin.jpeg b/limestone/all-samples/assets/images/violin.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0f2c9b1d66461385d591fddc488d5b3490e0d96c GIT binary patch literal 14128 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 literal 0 HcmV?d00001 diff --git a/limestone/all-samples/package.json b/limestone/all-samples/package.json new file mode 100644 index 000000000..146c5fab2 --- /dev/null +++ b/limestone/all-samples/package.json @@ -0,0 +1,54 @@ +{ + "name": "all-samples", + "version": "1.0.0", + "description": "A collection of sample applications for limestone.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Limestone QA Samples", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "@enact/webos": "^5.0.0-alpha.4", + "@reduxjs/toolkit": "^2.3.0", + "classnames": "^2.5.1", + "hls.js": "^1.5.17", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "query-string": "^9.1.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-redux": "^9.1.2", + "react-router-dom": "^6.28.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/all-samples/resources/ilibmanifest.json b/limestone/all-samples/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/all-samples/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/all-samples/src/App/App.js b/limestone/all-samples/src/App/App.js new file mode 100644 index 000000000..27597cb5c --- /dev/null +++ b/limestone/all-samples/src/App/App.js @@ -0,0 +1,111 @@ +import kind from '@enact/core/kind'; +import Scroller from '@enact/limestone/Scroller'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; +import PropTypes from 'prop-types'; +import {HashRouter, Route, Routes, useNavigate} from 'react-router-dom'; +import {StaticRouter} from 'react-router-dom/server'; + +import SampleItem from '../components/SampleItem'; +import ButtonToSamples from '../components/ButtonToSamples'; +import {AppBase as PatternDynamicPanel} from '../../../pattern-dynamic-panel/src/App/App'; +import {AppBase as PatternAccountIcon} from '../../../pattern-account-icon/src/App/App'; +import {AppBase as PatternVideoPlayerCustom} from '../../../pattern-video-player-custom/src/App/App'; +import {AppBase as PatternLayout} from '../../../pattern-layout/src/App/App'; +import {appElementBase as PatternLocaleSwitching} from '../../../pattern-locale-switching/src/main'; +import {App as PatternReact18New} from '../../../pattern-react18-new/src/App'; +import {appElementBase as PatternRoutablePanels} from '../../../pattern-routable-panels/src/main'; +import {AppBase as PatternSinglePanel} from '../../../pattern-single-panel/src/App/App'; +import {appElementBase as PatternSinglePanelRedux} from '../../../pattern-single-panel-redux/src/main'; +import {AppBase as PatternVideoPlayer} from '../../../pattern-video-player/src/App/App'; +import {appElementBase as PatternVirtualgridlistApi} from '../../../pattern-virtualgridlist-api/src/main'; +import {App as PatternVirtualgridlistIncrementalLoad} from '../../../pattern-virtualgridlist-incremental-load/src/App/App'; +import {appElementBase as PatternVirtuallistPreservingFocus} from '../../../pattern-virtuallist-preserving-focus/src/main'; +import {AppBase as TutorialHelloEnact} from '../../../tutorial-hello-enact/src/App/App'; +import {AppBase as TutorialKittenBrowser} from '../../../tutorial-kitten-browser/src/App/App'; + +import css from './App.module.less'; + +const NavigationMenu = kind({ + name: 'NavigationMenu', + + functional: true, + + propTypes: { + location: PropTypes.any, + match: PropTypes.any, + staticContext: PropTypes.any + }, + + render: ({...props}) => { + delete props.match; + delete props.location; + delete props.staticContext; + + const navigate = useNavigate(); //eslint-disable-line + + return ( +

    + ); + } +}); + +const routes = [ + {path: '/', exact: true, element: }, + {path: '/PatternAccountIcon', element: }, + {path: '/PatternDynamicPanel', element: }, + {path: '/PatternLayout', element: }, + {path: '/PatternLocaleSwitching', element: }, + {path: '/PatternReact18New', element: }, + {path: '/PatternRoutablePanels', element: }, + {path: '/PatternSinglePanel', element: }, + {path: '/PatternSinglePanelRedux', element: }, + {path: '/PatternVideoPlayer', element: }, + {path: '/PatternVideoPlayerCustom', element: }, + {path: '/PatternVirtualgridlistApi', element: }, + {path: '/PatternVirtualgridlistIncrementalLoad', element: }, + {path: '/PatternVirtuallistPreservingFocus', element: }, + {path: '/TutorialHelloEnact', element: }, + {path: '/TutorialKittenBrowser', element: } +]; + +const AppBase = kind({ + name: 'App', + + styles: { + css, + className: 'app' + }, + + render: (props) => { + const Router = typeof window !== 'undefined' ? HashRouter : StaticRouter; + return ( + +
    + + + {routes.map((route, index) => )} + +
    +
    + ); + } +}); + +const App = ThemeDecorator(AppBase); +export default App; diff --git a/limestone/all-samples/src/App/App.module.less b/limestone/all-samples/src/App/App.module.less new file mode 100644 index 000000000..23782defd --- /dev/null +++ b/limestone/all-samples/src/App/App.module.less @@ -0,0 +1,3 @@ +.app { + // styles can be put here +} diff --git a/limestone/all-samples/src/App/package.json b/limestone/all-samples/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/all-samples/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/all-samples/src/components/ButtonToSamples/ButtonToSamples.js b/limestone/all-samples/src/components/ButtonToSamples/ButtonToSamples.js new file mode 100644 index 000000000..8bda47fbd --- /dev/null +++ b/limestone/all-samples/src/components/ButtonToSamples/ButtonToSamples.js @@ -0,0 +1,19 @@ +import Button from '@enact/limestone/Button'; +import {Link} from 'react-router-dom'; + +import css from './ButtonToSamples.module.less'; + +const ButtonToSamples = () => ( +
    + + + +
    +); + +export default ButtonToSamples; diff --git a/limestone/all-samples/src/components/ButtonToSamples/ButtonToSamples.module.less b/limestone/all-samples/src/components/ButtonToSamples/ButtonToSamples.module.less new file mode 100644 index 000000000..a563aca30 --- /dev/null +++ b/limestone/all-samples/src/components/ButtonToSamples/ButtonToSamples.module.less @@ -0,0 +1,22 @@ +.backLink { + z-index: 1; + margin-right: 5%; + + .backButton { + z-index: 2; + transform: translate(0px, -100px); + transition: all .5s ease-in-out; + } + + &:hover { + .backButton { + transform: translate(0px, 0px); + } + } +} + +.buttonContainer { + display: flex; + flex-direction: row; + justify-content: flex-end; +} diff --git a/limestone/all-samples/src/components/ButtonToSamples/package.json b/limestone/all-samples/src/components/ButtonToSamples/package.json new file mode 100644 index 000000000..0aa02ee6e --- /dev/null +++ b/limestone/all-samples/src/components/ButtonToSamples/package.json @@ -0,0 +1,3 @@ +{ + "main": "ButtonToSamples.js" +} diff --git a/limestone/all-samples/src/components/README.md b/limestone/all-samples/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/all-samples/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/all-samples/src/components/SampleItem/SampleItem.js b/limestone/all-samples/src/components/SampleItem/SampleItem.js new file mode 100644 index 000000000..e68e3c93f --- /dev/null +++ b/limestone/all-samples/src/components/SampleItem/SampleItem.js @@ -0,0 +1,22 @@ +import Item from '@enact/limestone/Item'; +import PropTypes from 'prop-types'; +import {useCallback} from 'react'; + +const SampleItem = ({children, navigate, path, ...rest}) => { + const itemSelect = useCallback(() => { + navigate({pathname: path}); + }, [navigate, path]); + + return ( + + {children} + + ); +}; + +SampleItem.propTypes = { + navigate: PropTypes.func, + path: PropTypes.any +}; + +export default SampleItem; diff --git a/limestone/all-samples/src/components/SampleItem/package.json b/limestone/all-samples/src/components/SampleItem/package.json new file mode 100644 index 000000000..974620350 --- /dev/null +++ b/limestone/all-samples/src/components/SampleItem/package.json @@ -0,0 +1,3 @@ +{ + "main": "SampleItem.js" +} diff --git a/limestone/all-samples/src/index.js b/limestone/all-samples/src/index.js new file mode 100644 index 000000000..083b00238 --- /dev/null +++ b/limestone/all-samples/src/index.js @@ -0,0 +1,29 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +// Router causes an error with our samples, but we don't want our samples to know about router. +// To avoid this for now we're just suppressing the error. +/* eslint-disable no-console */ +const originalConsoleError = console.error; + +console.error = (...args) => { + return (args[0].includes('React does not recognize the `%s` prop on a DOM element.') && args[1] === 'staticContext') || args[0].includes('Unknown props `match`, `location`, `history`, `staticContext`') || args[0].includes('Warning: Hash history cannot PUSH the same path') ? null : originalConsoleError(...args); +}; +/* eslint-enable no-console */ + +const appElement = (); + +// In a browser environment, render the app to the document. +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/all-samples/src/views/README.md b/limestone/all-samples/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/all-samples/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/all-samples/webos-meta/appinfo.json b/limestone/all-samples/webos-meta/appinfo.json new file mode 100644 index 000000000..4377fa8e3 --- /dev/null +++ b/limestone/all-samples/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.limestoneqa", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Limestone QA Samples", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/all-samples/webos-meta/icon-large.png b/limestone/all-samples/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/all-samples/webos-meta/icon-mini.png b/limestone/all-samples/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/feature-custom-skin-generator/.gitignore b/limestone/feature-custom-skin-generator/.gitignore new file mode 100644 index 000000000..f94ea516b --- /dev/null +++ b/limestone/feature-custom-skin-generator/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/feature-custom-skin-generator/README-devs.md b/limestone/feature-custom-skin-generator/README-devs.md new file mode 100644 index 000000000..30c9671f6 --- /dev/null +++ b/limestone/feature-custom-skin-generator/README-devs.md @@ -0,0 +1,33 @@ +## How to add/remove/change colors for a custom skin application: + +In order to change or add color to the app, you need 3 different things: +1) The name you wish to display inside the app +2) Its value in hex +3) The name of the CSS property + +With these three things, you must next go to the `MainPanel.js` file and create a pair of [`colorName`, `setColorName`] +using the hook `useState` with the default value in hex code mentioned above. You must add +`colorName` to the `colors` array and the `setColorName` to `setColors` array. You must also add +the display name into `propNames` array and the CSS property name into `varNames` array. + +Example: For `TextColorRGB`, we created [`TextSubColor`, `setTextSubColor`] = `useState(`'#ABAEB3'`)` +and added them to `colors` and `setColors`. We chose 'Text Sub Color' as the display name and +added it to `propNames`. The CSS property we added to `varNames` is `--sand-text-sub-color`. + +Please add RGB at the end display name if the color must be represented as a comma-separated RGB value (ex: `Component Text Color RGB`). + +When we add all those variables to their arrays, please add them at the same index as this is the method +by which we do most of the operations (ex: if `TextSubColor` has index 2 in `colors` array `setTextSubColor` should have the same index in +the `setColors` array and so on). + +Next, please go to the `util.js` file for generating colors including a new color. Here, `generateColors` function returns an array +of colors that contains all the colors we use for auto mode. Please insert a new value in that array at +the index you inserted the color in all those arrays back in the `MainPanel.js` file. The value is determined as described below: + +If the default hex value for our property is equal to another's, we copy that property's return element for +the new one (ex: `Text Sub Color` has the same default value as `Component Text Sub Color RGB` so they +both return `textColors[0].toUpperCase()`). This is the case if they are both in the same category (both are +background colors or both are text colors). If this is the first time this hex value appears, just add one +to the limit of `generateBGColors` (or `generateTextColors` for text colors) and use the new generated color. +After you add, remove, or edit a variable, please check the app to see if any unintended changes are applied +to the non-live preview components. diff --git a/limestone/feature-custom-skin-generator/README.md b/limestone/feature-custom-skin-generator/README.md new file mode 100644 index 000000000..2d526e5ca --- /dev/null +++ b/limestone/feature-custom-skin-generator/README.md @@ -0,0 +1,21 @@ +## Custom Skin + +A sample Enact application that uses custom-skin feature to style the components. + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +This app will help you to generate a stylesheet that customizes a Limestone UI component for your application. On the left side of the app, you can see all the customizable color fields, while on the right side is the `Live Preview` area. Any value changes you make inside the color fields will be reflected `Live Preview`. + +#### Customize Stylesheet + +The dropdown on the top of the page allows you to choose some presets including Limestone default skin. There is also an option to import your own CSS file. + +Turning on the `Generate color automatically` switch will generate a skin configuration automatically based on the background and text color you choose. + +You can interact with color fields by changing their value inside the input field, or by clicking the colored square which will open the basic color picker. + +#### Save Stylesheet + +At the bottom of the page, you can check out the generated custom CSS. `Show Output` will open a popup containing the contents of the generated stylesheet. The `Copy` button will copy that content to the clipboard. `Download` will generate a customized CSS file. The output shows only the modified value of CSS variables from the Limestone default skin but you can see all the CSS variable list by turning on the `Save full set of variables`. + +The `Reset` button will revert all the changes to the active selected preset. diff --git a/limestone/feature-custom-skin-generator/package.json b/limestone/feature-custom-skin-generator/package.json new file mode 100644 index 000000000..2a22dac61 --- /dev/null +++ b/limestone/feature-custom-skin-generator/package.json @@ -0,0 +1,47 @@ +{ + "name": "custom-skin-generator", + "version": "1.0.0", + "description": "A general template for an Enact Limestone application.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "UNLICENSED", + "private": true, + "repository": "", + "enact": { + "theme": "limestone" + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "eslintIgnore": [ + "node_modules/*", + "build/*", + "dist/*" + ], + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "classnames": "^2.5.1", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/feature-custom-skin-generator/resources/ilibmanifest.json b/limestone/feature-custom-skin-generator/resources/ilibmanifest.json new file mode 100644 index 000000000..5916671d2 --- /dev/null +++ b/limestone/feature-custom-skin-generator/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/limestone/feature-custom-skin-generator/screenTypes.json b/limestone/feature-custom-skin-generator/screenTypes.json new file mode 100644 index 000000000..0671927ab --- /dev/null +++ b/limestone/feature-custom-skin-generator/screenTypes.json @@ -0,0 +1,9 @@ +[ + {"name": "pal", "pxPerRem": 12, "width": 1024, "height": 576, "aspectRatioName": "hdtv"}, + {"name": "hd", "pxPerRem": 16, "width": 1280, "height": 720, "aspectRatioName": "hdtv"}, + {"name": "fhd", "pxPerRem": 24, "width": 1920, "height": 1080, "aspectRatioName": "hdtv"}, + {"name": "uw-uxga", "pxPerRem": 24, "width": 2560, "height": 1080, "aspectRatioName": "cinema"}, + {"name": "qhd", "pxPerRem": 36, "width": 2560, "height": 1440, "aspectRatioName": "hdtv"}, + {"name": "uhd", "pxPerRem": 48, "width": 3840, "height": 2160, "aspectRatioName": "hdtv", "base": true}, + {"name": "uhd2", "pxPerRem": 96, "width": 7680, "height": 4320, "aspectRatioName": "hdtv"} +] diff --git a/limestone/feature-custom-skin-generator/src/App/App.js b/limestone/feature-custom-skin-generator/src/App/App.js new file mode 100644 index 000000000..a36e4ec6a --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/App/App.js @@ -0,0 +1,27 @@ +import kind from '@enact/core/kind'; +import Panels from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; + +import MainPanel from '../views/MainPanel'; +import screenTypes from '../../screenTypes.json'; + +import css from './App.module.less'; + +const App = kind({ + name: 'App', + + styles: { + css, + className: 'app' + }, + + render: (props) => ( +
    + + + +
    + ) +}); + +export default ThemeDecorator({ri: {screenTypes}}, App); diff --git a/limestone/feature-custom-skin-generator/src/App/App.module.less b/limestone/feature-custom-skin-generator/src/App/App.module.less new file mode 100644 index 000000000..f0eab41ad --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/App/App.module.less @@ -0,0 +1,10 @@ +.app { + .panels { + background-color: #1F3044; + font-size: 48px; + } + + p { + font-size: 48px; + } +} diff --git a/limestone/feature-custom-skin-generator/src/App/package.json b/limestone/feature-custom-skin-generator/src/App/package.json new file mode 100644 index 000000000..add0ba2a3 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} \ No newline at end of file diff --git a/limestone/feature-custom-skin-generator/src/common/styles.module.less b/limestone/feature-custom-skin-generator/src/common/styles.module.less new file mode 100644 index 000000000..9696030bc --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/common/styles.module.less @@ -0,0 +1,51 @@ +// General styles + +.scrollerColors { + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-progress-bg-color-rgb: 55, 58, 65; + --sand-progress-color-rgb: 230, 230, 230; + --sand-shadow-color-rgb: none; +} + +.inputField { + --sand-shadow-color-rgb: none; + align-items: center; + padding: 12px 0; + + .labelField { + color: #e6e6e6; + margin: 0 36px; + } +} + +.colorBlock[type=color] { + height: 132px; + width: 132px; + min-width: 132px; + border-color: transparent; + border-radius: 12px; + + &::-webkit-color-swatch-wrapper { + padding: 0; + } + + &::-webkit-color-swatch { + border-color: transparent; + } +} + +.customAlert { + --sand-alert-overlay-bg-color-rgb: 76, 89, 106; + --sand-component-bg-color: #7D848C; + --sand-component-focus-text-color-rgb: 76, 80, 89; + --sand-component-text-color-rgb: 230, 230, 230; + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-overlay-bg-color-rgb: 76, 89, 106; + --sand-shadow-color-rgb: none; + --sand-text-color-rgb: 230, 230, 230; + text-align-last: center; + + .customAlertMsg { + --sand-text-color-rgb: 230, 230, 230; + } +} diff --git a/limestone/feature-custom-skin-generator/src/components/AutoPopup/AutoPopup.js b/limestone/feature-custom-skin-generator/src/components/AutoPopup/AutoPopup.js new file mode 100644 index 000000000..c509003d3 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/AutoPopup/AutoPopup.js @@ -0,0 +1,93 @@ +import kind from '@enact/core/kind'; +import BodyText from '@enact/limestone/BodyText'; +import Button from '@enact/limestone/Button'; +import Popup from '@enact/limestone/Popup'; +import PropTypes from 'prop-types'; + +import commonCss from '../../common/styles.module.less'; + +/** + * A popup component containing the alert for `switch to auto` warning + */ +const AutoPopup = kind({ + name: 'AutoPopup', + + propTypes:{ + /** + * Indicates the auto mode + * + * @type {Boolean} + * @required + * @public + */ + auto: PropTypes.bool.isRequired, + + /** + * Opens the popup if certain conditions are met + * + * @type {Boolean} + * @required + * @public + */ + openWarning: PropTypes.bool.isRequired, + + /** + * Setter function that interacts with prop `auto` + * + * @type {Function} + * @required + * @public + */ + setAuto: PropTypes.func.isRequired, + + /** + * Setter function that resets the number of changes since `auto` was turned off + * + * @type {Function} + * @required + * @public + */ + setChanges: PropTypes.func.isRequired, + + /** + * Setter function that interacts with prop `openWarning` + * + * @type {Function} + * @required + * @public + */ + setOpenWarning: PropTypes.func.isRequired + }, + + handlers:{ + // Handler for the 'Yes' button of popup + // It sets the `auto` to it's opposite value, changes to 0 and `openWarning` to false. + onClickOk:(event, {auto, setAuto, setChanges, setOpenWarning}) => { + setAuto(!auto); + setChanges(0); + setOpenWarning(false); + }, + // Handler for the 'No' button of popup + // It sets `openWarning` to false but it does not affect the other variables. + onClickCancel:(event, {setOpenWarning}) => { + setOpenWarning(false); + } + }, + + render:({onClickCancel, onClickOk, openWarning, ...rest}) => { + delete rest.auto; + delete rest.setAuto; + delete rest.setChanges; + delete rest.setOpenWarning; + + return ( + + Do you want to switch from manual to auto? + + + + ); + } +}); + +export default AutoPopup; diff --git a/limestone/feature-custom-skin-generator/src/components/ColorField/ColorField.js b/limestone/feature-custom-skin-generator/src/components/ColorField/ColorField.js new file mode 100644 index 000000000..b3807973f --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/ColorField/ColorField.js @@ -0,0 +1,72 @@ +import kind from '@enact/core/kind'; +import PropTypes from 'prop-types'; +import SingleField from '../SingleField/SingleField'; +import TripleField from '../TripleField/TripleField'; + +/** + * A component that contains either SingleField or TripleField component + * based on the `propName` prop + */ +const ColorField = kind({ + name: 'ColorField', + + propTypes: { + /** + * Indicates the color displayed in this component + * + * @type {String} + * @required + * @public + */ + color: PropTypes.string.isRequired, + + /** + * Indicates if the component is disabled + * + * @type {Boolean} + * @required + * @public + */ + disabled: PropTypes.bool.isRequired, + + /** + * Indicates this components's position inside a larger list of components + * @type {Number} + * @required + * @public + */ + index: PropTypes.number.isRequired, + + /** + * Setter function that interacts with prop `color` + * + * @type {Function} + * @required + * @public + */ + onChangeInput: PropTypes.func.isRequired, + + /** + * Holds the name of the ColorFields + * + * @type {String} + * @required + * @public + */ + propName: PropTypes.string.isRequired + }, + + render: ({color, disabled, index, onChangeInput, propName, ...rest}) => { + // As per requirement some colors must be displayed as RGB while other are hex. + // Our logic is not affected by this as we only use hex, but to display them we decided that if they hold RGB in name we will use + // TripleField instead of single field. + const tripleField = propName.includes('RGB'); + return ( + tripleField ? + : + + ); + } +}); + +export default ColorField; diff --git a/limestone/feature-custom-skin-generator/src/components/ColorFields/ColorFields.js b/limestone/feature-custom-skin-generator/src/components/ColorFields/ColorFields.js new file mode 100644 index 000000000..99213b86f --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/ColorFields/ColorFields.js @@ -0,0 +1,86 @@ +import kind from '@enact/core/kind'; +import PropTypes from 'prop-types'; + +import ColorField from '../ColorField/ColorField'; +import NameField from '../NameField/NameField'; + +/** + * A component that contains all the input fields of the custom-skin application + * It contains a NameField for the skin and one ColorField for each color that can be customized. + */ +const ColorFields = kind({ + name: 'ColorFields', + + propTypes:{ + /** + * Indicates the auto mode + * + * @type {Boolean} + * @required + * @public + */ + auto: PropTypes.bool.isRequired, + + /** + * An array containing all the colors for the variables we support customization for + * + * @type {Array} + * @required + * @public + */ + colors: PropTypes.array.isRequired, + + /** + * Indicates the name of the Skin + * + * @type {String} + * @required + * @public + */ + name: PropTypes.string.isRequired, + + /** + * Setter function that interacts with props `colors` and `name` + * + * @type {Function} + * @required + * @public + */ + onChangeInput: PropTypes.func.isRequired, + + /** + * An array containing all of the names for the variables we support customization for + * + * @type {Array} + * @required + * @public + */ + propNames: PropTypes.array.isRequired + }, + + render:({auto, colors, name, onChangeInput, propNames, ...rest}) => { + return ( +
    + + {colors?.map((color, index) => { + return ( + + ); + })} +
    + ); + } +}); + +export default ColorFields; diff --git a/limestone/feature-custom-skin-generator/src/components/ColorPicker/ColorPicker.js b/limestone/feature-custom-skin-generator/src/components/ColorPicker/ColorPicker.js new file mode 100644 index 000000000..55a9e7656 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/ColorPicker/ColorPicker.js @@ -0,0 +1,118 @@ +/* eslint-disable react/jsx-no-bind */ + +import Button from '@enact/limestone/Button'; +import Popup from '@enact/limestone/Popup'; +import Slider from '@enact/limestone/Slider'; +import {Cell, Column, Row} from '@enact/ui/Layout'; +import {useState} from 'react'; + +import {convertHexToRGB, convertRGBToHex, hexColors} from '../../utils'; + +import commonCss from '../../common/styles.module.less'; +import componentCss from './ColorPicker.module.less'; + +/** + * A component that replaces the html color picker + * This component was created so that we could use the color picker for webOS applications. + */ +const ColorPicker = (props) => { + const {color, disabled, onChange} = props || null; + const [open, setOpen] = useState(false); + + const [red, setRed] = useState(''); + const [green, setGreen] = useState(''); + const [blue, setBlue] = useState(''); + + function closePopup () { + setOpen(false); + } + + function changeRed (ev) { + setRed(ev.value); + } + + function changeBlue (ev) { + setBlue(ev.value); + } + + function changeGreen (ev) { + setGreen(ev.value); + } + + function applyChanges () { + onChange({target: {value: convertRGBToHex([red, green, blue])}}); + } + + function openPopup () { + const [r, g, b] = hexColors(color, '#ffffff') ? convertHexToRGB(color) : convertHexToRGB('#ffffff'); + + setRed(r); + setGreen(g); + setBlue(b); + setOpen(true); + } + + return ( +
    + + + +
    + ); +}; + +export default ColorPicker; diff --git a/limestone/feature-custom-skin-generator/src/components/ColorPicker/ColorPicker.module.less b/limestone/feature-custom-skin-generator/src/components/ColorPicker/ColorPicker.module.less new file mode 100644 index 000000000..5745d0f44 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/ColorPicker/ColorPicker.module.less @@ -0,0 +1,33 @@ +.applyButton { + --sand-component-bg-color: #7D848C; + --sand-component-focus-text-color-rgb: 76, 80, 89; + --sand-component-text-color-rgb: 230, 230, 230; + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-shadow-color-rgb: none; + width: 576px; +} + +.closeButton { + --sand-component-focus-text-color-rgb: 76, 80, 89; +} + +.sliderRegion { + display: flex; + justify-content: space-between; +} + +.coloredButton { + border-radius: 24px; + height: 48px; + width: 576px; +} + +.colorPickerPanel { + --sand-focus-bg-color-rgb: 255, 255, 255; + --sand-overlay-bg-color-rgb: 76, 89, 106; + --sand-progress-bg-color-rgb: 55, 58, 65; + --sand-progress-slider-color: #8D9298; + --sand-shadow-color-rgb: none; + --sand-text-color-rgb: 230, 230, 230; + width: 720px; +} diff --git a/limestone/feature-custom-skin-generator/src/components/ImportSkin/ImportSkin.js b/limestone/feature-custom-skin-generator/src/components/ImportSkin/ImportSkin.js new file mode 100644 index 000000000..33a68d4d0 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/ImportSkin/ImportSkin.js @@ -0,0 +1,220 @@ +import kind from '@enact/core/kind'; +import platform from '@enact/core/platform'; +import Dropdown from '@enact/limestone/Dropdown'; +import PropTypes from 'prop-types'; + +import componentCss from './ImportSkin.module.less'; + +/** + * A component that contains the dropdown used for preset selection + */ +const ImportSkin = kind({ + name: 'ImportSkin', + + propTypes: { + /** + * Setter function that interacts with the last option of the dropdown + * and sets the custom-skin from an external css file + * + * @type {Function} + * @required + * @public + */ + setColorsImport: PropTypes.func.isRequired, + + /** + * Setter function that changes the current preset for the skin + * + * @type {Function} + * @required + * @public + */ + setColorsPreset: PropTypes.func.isRequired, + + /** + * An array containing all the names for the dropdown except the last one + * + * @type {Array} + * @default [ + * 'Default Limestone Theme', + * 'Blue Color Set 1', + * 'Blue Color Set 2', + * 'Green Color Set 1', + * 'Green Color Set 2', + * 'Purple Color Set 1', + * 'Purple Color Set 2', + * 'Red Color Set 1', + * 'Red Color Set 2' + * ] + * @public + */ + colorPresets: PropTypes.array + }, + + defaultProps: { + colorPresets: [ + 'Default Limestone Theme', + 'Blue Color Set 1', + 'Blue Color Set 2', + 'Green Color Set 1', + 'Green Color Set 2', + 'Purple Color Set 1', + 'Purple Color Set 2', + 'Red Color Set 1', + 'Red Color Set 2' + ] + }, + + handlers: { + // Function that handles what happens when the dropdown closes + // If we chose all but the last option it will change the preset to the selected one. + // It also removes some css styles included by the handleOpen handler. + handleClose: async (ev, {setColorsImport, setColorsPreset}) => { + if (typeof document !== 'undefined') { + document.querySelector('#temporaryStylesheetImport')?.remove(); + } + switch (ev.data) { + case 'Default Limestone Theme': { + setColorsPreset('defaultTheme'); + break; + } + case 'Blue Color Set 1': { + setColorsPreset('blueColorSet1'); + break; + } + case 'Green Color Set 1': { + setColorsPreset('greenColorSet1'); + break; + } + case 'Purple Color Set 1': { + setColorsPreset('purpleColorSet1'); + break; + } + case 'Red Color Set 1': { + setColorsPreset('redColorSet1'); + break; + } + case 'Blue Color Set 2': { + setColorsPreset('blueColorSet2'); + break; + } + case 'Green Color Set 2': { + setColorsPreset('greenColorSet2'); + break; + } + case 'Purple Color Set 2': { + setColorsPreset('purpleColorSet2'); + break; + } + case 'Red Color Set 2': { + setColorsPreset('redColorSet2'); + break; + } + // If we chose the last option it will ask for a css file that it will scan and extract the skin + // preset from (the file must have the same structure as the ones this app generates). + case 'Import your own': { + function inputHandler (inputEvent) { + inputEvent.preventDefault(); + if (typeof window !== 'undefined') { + const reader = new window.FileReader(); + reader.onload = async (event) => { + let text = (event.target.result).split('\n\t'); + text.shift(); + text = text.filter(string => { + if (string[0] !== '/' || string.includes('/* Skin Name')) { + return string; + } + }); + setColorsImport(text); + }; + try { + reader.readAsText(inputEvent.target.files[0]); + } catch (err) { + throw new Error(err); + } + } + } + + if (typeof document !== 'undefined') { + const input = document.createElement('input'); + input.type = 'file'; + input.onchange = inputHandler; + input.id = 'temporaryInput'; + input.click(); + } + break; + } + default: + break; + } + }, + + // Opens the popup and appends some styles via javascript. The styles must be appended for the + // non live demo components to have the basic limestone appearance. + handleOpen: async () => { + if (typeof document !== 'undefined') { + const sheet = document.createElement('style'); + sheet.id = 'temporaryStylesheetImport'; + sheet.innerHTML = `.limestone-theme { + --sand-component-focus-text-color-rgb: 76, 80, 89; + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-overlay-bg-color-rgb: 87, 94, 102; + --sand-progress-bg-color-rgb: 55, 58, 65; + --sand-progress-color-rgb: 230, 230, 230; + --sand-selected-text-color: #E6E6E6; + --sand-shadow-color-rgb: none; + }`; + document.body?.appendChild(sheet); + + setTimeout(() => { + let dropdown = document.querySelector('[role="list"]'); + dropdown.style.color = '#E6E6E6'; + }); + } + } + }, + + computed: { + size: () => { + if (typeof window !== 'undefined') { + const width = window.innerWidth; + + if (window.screen.width <= 1920) { + if (width < 1080) { + return 'medium'; + } else if (width > 1080 && width < 1800) { + return 'large'; + } else { + return 'x-large'; + } + } else if (window.screen.width > 1920) { + if (width < 2160) { + return 'medium'; + } else if (width > 2160 && width < 3600) { + return 'large'; + } else { + return 'x-large'; + } + } + } + } + }, + + render: ({colorPresets, handleClose, handleOpen, size}) => { + return ( +
    + + {platform.webos ? colorPresets : [...colorPresets, 'Import your own']} + +
    + ); + } +}); + +export default ImportSkin; diff --git a/limestone/feature-custom-skin-generator/src/components/ImportSkin/ImportSkin.module.less b/limestone/feature-custom-skin-generator/src/components/ImportSkin/ImportSkin.module.less new file mode 100644 index 000000000..0ebdcd801 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/ImportSkin/ImportSkin.module.less @@ -0,0 +1,11 @@ +.inputFile { + .presetDropdown { + --sand-component-bg-color: #7D848C; + --sand-component-focus-text-color-rgb: 76, 80, 89; + --sand-component-text-color-rgb: 230, 230, 230; + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-selected-bg-color: #3E454D; + --sand-shadow-color-rgb: none; + margin: 0; + } +} diff --git a/limestone/feature-custom-skin-generator/src/components/NameField/NameField.js b/limestone/feature-custom-skin-generator/src/components/NameField/NameField.js new file mode 100644 index 000000000..802158770 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/NameField/NameField.js @@ -0,0 +1,103 @@ +import kind from '@enact/core/kind'; +import BodyText from '@enact/limestone/BodyText'; +import {InputField} from '@enact/limestone/Input'; +import {Cell, Layout} from '@enact/ui/Layout'; +import classnames from 'classnames'; +import PropTypes from 'prop-types'; + +import commonCss from '../../common/styles.module.less'; +import componentCss from './NameField.module.less'; + +/** + * A component that contains a label and an input field, used to denote the name of the skin + */ +const NameField = kind({ + name: 'NameField', + + propTypes: { + /** + * Setter function that interacts with prop `name` + * + * @type {Function} + * @required + * @public + */ + onChangeInput: PropTypes.func.isRequired, + + /** + * The name displayed next to the input field + * + * @type {String} + * @required + * @public + */ + propName: PropTypes.string.isRequired, + + /** + * Customizes the component by mapping the supplied collection of CSS class names to the + * corresponding internal elements and states of this component. + * + * @type {Object} + * @public + */ + css: PropTypes.object, + + /** + * The value attributed to input + * + * @type {String} + * @default '' + * @public + */ + name: PropTypes.string, + + /** + * The value attributed to input as a placeholder + * + * @type {String} + * @default 'Custom Skin' + * @public + */ + placeholder: PropTypes.string + }, + + defaultProps: { + name : '', + placeholder : 'Custom Skin' + }, + + styles:{ + css: componentCss, + className:'nameField' + }, + + handlers: { + // Handler that sends back to Main Panel the event captured and the name of the field it comes from via the + // onChangeInput function + onChangeInputField: (event, {onChangeInput, propName}) => { + onChangeInput({event, name: propName}); + } + }, + + render: ({css, name, onChangeInputField, placeholder, propName, ...rest}) => { + delete rest.onChangeInput; + + return ( + + + {propName} + + + + ); + } +}); + +export default NameField; diff --git a/limestone/feature-custom-skin-generator/src/components/NameField/NameField.module.less b/limestone/feature-custom-skin-generator/src/components/NameField/NameField.module.less new file mode 100644 index 000000000..9f1376869 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/NameField/NameField.module.less @@ -0,0 +1,20 @@ +.nameField { + --sand-component-focus-text-color-rgb: 0, 0, 0; + --sand-component-text-color-rgb: 230, 230, 230; + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-selection-bg-color: #3399FF; + --sand-selection-color: #4C5059; + --sand-shadow-color-rgb: none; + color: #e6e6e6; + + .inputField{ + color: #e6e6e6; + margin: 0; + max-width: 65%; + + .input { + font-size: 48px; + } + } + +} diff --git a/limestone/feature-custom-skin-generator/src/components/OutputField/OutputField.js b/limestone/feature-custom-skin-generator/src/components/OutputField/OutputField.js new file mode 100644 index 000000000..74076cf4c --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/OutputField/OutputField.js @@ -0,0 +1,202 @@ +/* eslint-disable react/jsx-no-bind */ + +import kind from '@enact/core/kind'; +import platform from '@enact/core/platform'; +import BodyText from '@enact/limestone/BodyText'; +import Button from '@enact/limestone/Button'; +import Popup from '@enact/limestone/Popup'; +import Scroller from '@enact/limestone/Scroller'; +import Switch from '@enact/limestone/Switch'; +import Toggleable from '@enact/ui/Toggleable'; +import TooltipDecorator from '@enact/limestone/TooltipDecorator'; +import {Cell, Column, Row} from '@enact/ui/Layout'; +import PropTypes from 'prop-types'; + +import css from './OutputField.module.less'; + +import {generateCSS, generateCSSFile, getPresetDifferences} from '../../utils'; + +const TooltipButton = TooltipDecorator({tooltipDestinationProp: 'decoration'}, Button); + +/** + * A component that contains the footer of the application + */ +const OutputField = kind({ + name: 'OutputField', + + propTypes:{ + /** + * An array containing all of the colors for the variables we support customization for + * + * @type {Array} + * @required + * @public + */ + colors: PropTypes.array.isRequired, + + /** + * Opens the popup if certain conditions are met + * + * @type {Boolean} + * @required + * @public + */ + fullCSS: PropTypes.bool.isRequired, + + /** + * Setter function that interacts with prop `fullCSS` + * + * @type {Function} + * @required + * @public + */ + handleFullCSS: PropTypes.func.isRequired, + + /** + * Setter function that interacts with prop `popupOpen` + * + * @type {Function} + * @required + * @public + */ + onToggleOpen: PropTypes.func.isRequired, + + /** + * Opens the popup if certain conditions are met + * + * @type {Boolean} + * @required + * @public + */ + popupOpen: PropTypes.bool.isRequired, + + /** + * Object that contains a preset + * + * @type {Object} + * @required + * @public + */ + presetColors: PropTypes.object.isRequired, + + /** + * Function that resets all the values of the current skin to the selected preset + * + * @type {Function} + * @required + * @public + */ + setDefaultState: PropTypes.func.isRequired, + + /** + * The current value from the NameField + * + * @type {String} + * @required + * @public + */ + skinName: PropTypes.string.isRequired, + + /** + * An array containing all of the css properties we support customization for + * + * @type {Array} + * @required + * @public + */ + varNames: PropTypes.array.isRequired + }, + + handlers:{ + // Handler function that generates a css file that hold our current customization + generateFile: (event, {colors, fullCSS, presetColors, skinName, varNames}) => { + if (fullCSS) { + return generateCSSFile(skinName, generateCSS(colors, skinName, varNames)); + } else { + return generateCSSFile(skinName, generateCSS(getPresetDifferences(colors, presetColors), skinName, varNames)); + } + }, + // Removes some css styles included by the handleOpen and handleFocus handlers. + handleClose: () => { + if (typeof document !== 'undefined') { + document.querySelector('#temporaryStylesheet')?.remove(); + } + }, + // Appends some styles via javascript. The styles must be appended for the + // non live demo components to have the basic limestone appearance. + handleFocus: () => { + if (typeof document !== 'undefined') { + const sheet = document.createElement('style'); + sheet.id = 'temporaryStylesheet'; + sheet.innerHTML = `.limestone-theme { + --sand-component-focus-text-color-rgb: 76, 80, 89; + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-shadow-color-rgb: none; + }`; + document.body?.appendChild(sheet); + } + }, + // Opens the popup that contains the css and appends some styles via javascript. The styles must be appended + // for the non live demo components to have the basic limestone appearance. + handleOpen: (ev, {onToggleOpen}) => { + if (typeof document !== 'undefined') { + const sheet = document.createElement('style'); + sheet.id = 'temporaryStylesheet'; + sheet.innerHTML = `.limestone-theme { + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-progress-bg-color-rgb: 55, 58, 65; + --sand-progress-color-rgb: 230, 230, 230; + --sand-overlay-bg-color-rgb: 87, 94, 102; + --sand-shadow-color-rgb: none; + }`; + document.body?.appendChild(sheet); + onToggleOpen(); + } + } + }, + + computed: { + text: ({colors, fullCSS, presetColors, skinName, varNames}) => { + if (fullCSS) { + return generateCSS(colors, skinName, varNames); + } else { + return generateCSS(getPresetDifferences(colors, presetColors), skinName, varNames); + } + } + }, + + render: ({fullCSS, generateFile, handleClose, handleFocus, handleFullCSS, handleOpen, onToggleOpen, popupOpen, setDefaultState, text}) => { + // Function that copies the content of the custom-skin css file into clipboard + function copyToClipboard () { + return navigator.clipboard?.writeText(text); + } + + return ( + + + +
    +							{text}
    +						
    +
    +
    + +
    +
    + Save full set of variables + +
    + + {!platform.webos ? Show output : ''} + {!platform.webos ? Copy : ''} + {!platform.webos ? Download : ''} + + + Reset + +
    +
    + ); + }}); + +export default Toggleable({prop: 'popupOpen', toggle: 'onToggleOpen'}, OutputField); diff --git a/limestone/feature-custom-skin-generator/src/components/OutputField/OutputField.module.less b/limestone/feature-custom-skin-generator/src/components/OutputField/OutputField.module.less new file mode 100644 index 000000000..53dc30b87 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/OutputField/OutputField.module.less @@ -0,0 +1,48 @@ +.outputField { + --sand-component-bg-color: #7D848C; + --sand-component-focus-text-color-rgb: 76, 80, 89; + --sand-component-text-color-rgb: 230, 230, 230; + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-shadow-color-rgb: none; + + .outputBtnContainer { + display: flex; + flex-wrap: wrap; + + .outputBtn { + --sand-focus-bg-color: #fff; + color: #e6e6e6; + margin: 18px 36px; + + .icon { + font-size: 51px; + } + } + + .switchContainer{ + padding-top: 24px; + + .switchLabel { + display: inline-block; + color: #e6e6e6; + } + + .switchControl { + --sand-focus-bg-color-rgb: 125, 132, 140; + --sand-selected-color-rgb: 0, 0, 0; + --sand-shadow-color-rgb: none; + --sand-toggle-on-color: #505050; + --sand-toggle-on-bg-color: #e6e6e6; + --sand-toggle-off-color: #4c596a; + --sand-toggle-off-bg-color: #abaeb3; + margin: 18px; + } + } + } +} + +.outputData { + font-size: 33px; + color: #e6e6e6; + max-height: 1200px; +} diff --git a/limestone/feature-custom-skin-generator/src/components/SingleField/SingleField.js b/limestone/feature-custom-skin-generator/src/components/SingleField/SingleField.js new file mode 100644 index 000000000..a53521864 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/SingleField/SingleField.js @@ -0,0 +1,109 @@ +import kind from '@enact/core/kind'; +import platform from '@enact/core/platform'; +import BodyText from '@enact/limestone/BodyText'; +import {InputField} from '@enact/limestone/Input'; +import {Cell, Layout} from '@enact/ui/Layout'; +import PropTypes from 'prop-types'; + +import ColorPicker from '../ColorPicker/ColorPicker'; + +import commonCss from '../../common/styles.module.less'; +import componentCss from './SingleField.module.less'; + +/** + * A component that contains a label and an input field, used to change the value of a css attribute + */ +const SingleField = kind({ + name: 'SingleField', + + propTypes: { + /** + * Indicates this component's position inside a larger list of components + * @type {Number} + * @required + * @public + */ + index: PropTypes.number.isRequired, + + /** + * Setter function that interacts with prop `color` + * + * @type {Function} + * @required + * @public + */ + onChangeInput: PropTypes.func.isRequired, + + /** + * Holds the name displayed next to the input + * + * @type {String} + * @required + * @public + */ + propName: PropTypes.string.isRequired, + + /** + * Indicates the color displayed in the input field + * + * @type {String} + * @default #FB9039 + * @public + */ + color: PropTypes.string, + + /** + * Customizes the component by mapping the supplied collection of CSS class names to the + * corresponding internal elements and states of this component. + * + * @type {Object} + * @public + */ + css: PropTypes.object + }, + + defaultProps: { + color : '#FB9039' + }, + + styles:{ + css: componentCss, + className:'singleField' + }, + + handlers: { + // Handler that sends back to Main Panel the event captured by the input field and the name of the field + // it comes from via the onChangeInput function and the index + onChangeInputField: (event, {index, onChangeInput, propName}) => { + onChangeInput({event, name: propName, index: index}); + }, + + // Handler that sends back to Main Panel the event captured by the color picker and the name of the field + // it comes from via the onChangeInput function and the index + onChangeInput: (event, {index, onChangeInput, propName}) => { + onChangeInput({event: event.target, name: propName, index: index}); + } + }, + + render: ({color, css, onChangeInput, onChangeInputField, propName, ...rest}) => { + delete rest.index; + delete rest.onChangeInput; + + return ( + + + {propName} + + + {platform.webos ? + : + + } + + + + ); + } +}); + +export default SingleField; diff --git a/limestone/feature-custom-skin-generator/src/components/SingleField/SingleField.module.less b/limestone/feature-custom-skin-generator/src/components/SingleField/SingleField.module.less new file mode 100644 index 000000000..fb79b6021 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/SingleField/SingleField.module.less @@ -0,0 +1,17 @@ +.singleField { + --sand-shadow-color-rgb: none; + display: flex; + + .singleInput { + --sand-component-focus-text-color-rgb: 0, 0, 0; + --sand-focus-bg-color-rgb: 255, 255, 255; + --sand-selection-bg-color: #3399FF; + --sand-selection-color: #4C5059; + color: #e6e6e6; + max-width: 336px; + + .input { + font-size: 48px; + } + } +} diff --git a/limestone/feature-custom-skin-generator/src/components/TripleField/TripleField.js b/limestone/feature-custom-skin-generator/src/components/TripleField/TripleField.js new file mode 100644 index 000000000..8e2d31bee --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/TripleField/TripleField.js @@ -0,0 +1,141 @@ +import kind from '@enact/core/kind'; +import platform from '@enact/core/platform'; +import BodyText from '@enact/limestone/BodyText'; +import {InputField} from '@enact/limestone/Input'; +import {Cell, Layout} from '@enact/ui/Layout'; +import PropTypes from 'prop-types'; + +import ColorPicker from '../ColorPicker/ColorPicker'; + +import {convertHexToRGB, convertRGBToHex} from '../../utils'; + +import commonCss from '../../common/styles.module.less'; +import componentCss from './TripleField.module.less'; + +/** + * A component that contains a label and three input fields, used to change the value of a css attribute + */ +const TripleField = kind({ + name: 'TripleField', + + propTypes: { + /** + * Indicates this component's position inside a larger list of components + * @type {Number} + * @required + * @public + */ + index: PropTypes.number.isRequired, + + /** + * Setter function that interacts with prop `color` + * + * @type {Function} + * @required + * @public + */ + onChangeInput: PropTypes.func.isRequired, + + /** + * Holds the name displayed next to the input + * + * @type {String} + * @required + * @public + */ + propName: PropTypes.string.isRequired, + + /** + * Indicates the color displayed in the input fields (converted from hex to RGB) + * + * @type {String} + * @default #FFFFFF + * @public + */ + color: PropTypes.string, + + /** + * Customizes the component by mapping the supplied collection of CSS class names to the + * corresponding internal elements and states of this component. + * + * @type {Object} + * @public + */ + css: PropTypes.object + }, + + defaultProps: { + color: '#FFFFFF' + }, + + styles:{ + css: componentCss, + className:'tripleField' + }, + + handlers: { + // Handler that sends back to Main Panel the event captured by the color picker and the name of the field + // it comes from via the onChangeInput function and the index + onChangeInput: (event, {index, onChangeInput, propName}) => { + onChangeInput({event: event.target, name: propName, index: index}); + }, + // Handler that sends back to Main Panel the new color value and the name of the field + // it comes from via the onChangeInput function and the index + onChangeInputB: (event, {color, index, onChangeInput, propName}) => { + const colors = convertHexToRGB(color); + const newColor = event.value ? parseInt(event.value) : 0; + onChangeInput({event: {value: convertRGBToHex([colors[0], colors[1], newColor])}, name: propName, index: index}); + }, + // Handler that sends back to Main Panel the new color value and the name of the field + // it comes from via the onChangeInput function and the index + onChangeInputG: (event, {color, index, onChangeInput, propName}) => { + const colors = convertHexToRGB(color); + const newColor = event.value ? parseInt(event.value) : 0; + onChangeInput({event: {value: convertRGBToHex([colors[0], newColor, colors[2]])}, name: propName, index: index}); + }, + // Handler that sends back to Main Panel the new color value and the name of the field + // it comes from via the onChangeInput function and the index + onChangeInputR: (event, {color, index, onChangeInput, propName}) => { + const colors = convertHexToRGB(color); + const newColor = event.value ? parseInt(event.value) : 0; + onChangeInput({event: {value: convertRGBToHex([newColor, colors[1], colors[2]])}, name: propName, index: index}); + } + }, + + render: ({color, css, onChangeInput, onChangeInputB, onChangeInputG, onChangeInputR, propName, ...rest}) => { + delete rest.index; + delete rest.onChangeInput; + + const colors = convertHexToRGB(color); + + return ( + + + {propName} + + + {platform.webos ? + : + + } + + + + R: + + + + G: + + + + B: + + + + + ); + } +}); + +export default TripleField; diff --git a/limestone/feature-custom-skin-generator/src/components/TripleField/TripleField.module.less b/limestone/feature-custom-skin-generator/src/components/TripleField/TripleField.module.less new file mode 100644 index 000000000..60a1a9a35 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/components/TripleField/TripleField.module.less @@ -0,0 +1,32 @@ +.tripleField { + --sand-component-focus-text-color-rgb: 0, 0, 0; + --sand-shadow-color-rgb: none; + display: flex; + align-items: center; + margin-left: 36px; + flex-wrap: wrap; + + .tripleText { + color: #e6e6e6; + } + + .redInput, + .greenInput, + .blueInput { + --sand-focus-bg-color-rgb: 255, 255, 255; + --sand-selection-bg-color: #3399FF; + --sand-selection-color: #4C5059; + color: #e6e6e6; + max-width: 171px; + margin: 3px 15px; + + .input { + font-size: 48px; + } + } + + .redInput, + .blueInput { + margin-left: 21px; + } +} diff --git a/limestone/feature-custom-skin-generator/src/constants.js b/limestone/feature-custom-skin-generator/src/constants.js new file mode 100644 index 000000000..06b5cb5b9 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/constants.js @@ -0,0 +1,504 @@ +export const presets = { + defaultTheme: { + '--sand-bg-color': '#000000', + '--sand-text-color-rgb': '#E6E6E6', + '--sand-text-sub-color': '#ABAEB3', + '--sand-shadow-color-rgb': '#000000', + '--sand-component-text-color-rgb': '#E6E6E6', + '--sand-component-text-sub-color-rgb': '#ABAEB3', + '--sand-component-bg-color': '#7D848C', + '--sand-component-active-indicator-bg-color': '#E6E6E6', + '--sand-component-inactive-indicator-bg-color': '#9DA2A7', + '--sand-focus-text-color': '#FFFFFF', + '--sand-focus-bg-color-rgb': '#E6E6E6', + '--sand-component-focus-text-color-rgb': '#4C5059', + '--sand-component-focus-active-indicator-bg-color': '#4C5059', + '--sand-component-focus-inactive-indicator-bg-color': '#B8B9BB', + '--sand-selected-color-rgb': '#E6E6E6', + '--sand-selected-text-color': '#E6E6E6', + '--sand-selected-bg-color': '#3E454D', + '--sand-disabled-focus-bg-color': '#ABAEB3', + '--sand-disabled-selected-color': '#4C5059', + '--sand-disabled-selected-bg-color': '#E6E6E6', + '--sand-disabled-selected-focus-color': '#E6E6E6', + '--sand-disabled-selected-focus-bg-color': '#4C5059', + '--sand-fullscreen-bg-color': '#000000', + '--sand-overlay-bg-color-rgb': '#575E66', + '--sand-selection-color': '#4C5059', + '--sand-selection-bg-color': '#3399FF', + '--sand-toggle-off-color': '#AEAEAE', + '--sand-toggle-off-bg-color': '#777777', + '--sand-toggle-on-color': '#E6E6E6', + '--sand-toggle-on-bg-color': '#30AD6B', + '--sand-progress-color-rgb': '#E6E6E6', + '--sand-progress-buffer-color': '#6B6D73', + '--sand-progress-bg-color-rgb': '#373A41', + '--sand-progress-highlighted-color': '#FFFFFF', + '--sand-progress-slider-color': '#8D9298', + '--sand-spinner-color-rgb': '#FFFFFF', + '--sand-checkbox-color': '#E6E6E6', + '--sand-item-disabled-focus-bg-color': '#E6E6E6', + '--sand-keyguide-bg-color-rgb': '#373A41', + '--sand-slider-disabled-knob-bg-color': '#666666', + '--sand-alert-overlay-bg-color-rgb': '#CACBCC', + '--sand-alert-overlay-text-color-rgb': '#2E3239', + '--sand-alert-overlay-text-sub-color': '#2E3239', + '--sand-alert-overlay-focus-text-color': '#575E66', + '--sand-alert-overlay-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-disabled-selected-bg-color': '#788688', + '--sand-alert-overlay-disabled-selected-focus-color': '#E6E6E6', + '--sand-alert-overlay-disabled-selected-focus-bg-color': '#4C5059', + '--sand-alert-overlay-progress-color-rgb': '#373A41', + '--sand-alert-overlay-progress-bg-color-rgb': '#A1A1A1', + '--sand-alert-overlay-checkbox-color': '#858B92', + '--sand-alert-overlay-checkbox-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-formcheckboxitem-focus-text-color': '#575E66', + '--sand-alert-overlay-item-disabled-focus-bg-color': '#989CA2' + }, + blueColorSet1: { + '--sand-bg-color': '#272829', + '--sand-text-color-rgb': '#E6E6E6', + '--sand-text-sub-color': '#ABAEB3', + '--sand-shadow-color-rgb': '#000000', + '--sand-component-text-color-rgb': '#E6E6E6', + '--sand-component-text-sub-color-rgb': '#ABAEB3', + '--sand-component-bg-color': '#7D848C', + '--sand-component-active-indicator-bg-color': '#E6E6E6', + '--sand-component-inactive-indicator-bg-color': '#9DA2A7', + '--sand-focus-text-color': '#303030', + '--sand-focus-bg-color-rgb': '#E6E6E6', + '--sand-component-focus-text-color-rgb': '#333333', + '--sand-component-focus-active-indicator-bg-color': '#4C5059', + '--sand-component-focus-inactive-indicator-bg-color': '#B8B9BB', + '--sand-selected-color-rgb': '#E6E6E6', + '--sand-selected-text-color': '#E6E6E6', + '--sand-selected-bg-color': '#61688E', + '--sand-disabled-focus-bg-color': '#ABAEB3', + '--sand-disabled-selected-color': '#4C5059', + '--sand-disabled-selected-bg-color': '#E7E7E7', + '--sand-disabled-selected-focus-color': '#E7E7E7', + '--sand-disabled-selected-focus-bg-color': '#4C5059', + '--sand-fullscreen-bg-color': '#000000', + '--sand-overlay-bg-color-rgb': '#292929', + '--sand-selection-color': '#4C5059', + '--sand-selection-bg-color': '#3399FF', + '--sand-toggle-off-color': '#AEAEAE', + '--sand-toggle-off-bg-color': '#494949', + '--sand-toggle-on-color': '#E6E6E6', + '--sand-toggle-on-bg-color': '#61688E', + '--sand-progress-color-rgb': '#E6E6E6', + '--sand-progress-buffer-color': '#6B6D73', + '--sand-progress-bg-color-rgb': '#373A41', + '--sand-progress-highlighted-color': '#FFFFFF', + '--sand-progress-slider-color': '#8D9298', + '--sand-spinner-color-rgb': '#FFFFFF', + '--sand-checkbox-color': '#E6E6E6', + '--sand-item-disabled-focus-bg-color': '#E6E6E6', + '--sand-keyguide-bg-color-rgb': '#6B6D73', + '--sand-slider-disabled-knob-bg-color': '#666666', + '--sand-alert-overlay-bg-color-rgb': '#CACBCC', + '--sand-alert-overlay-text-color-rgb': '#2E3239', + '--sand-alert-overlay-text-sub-color': '#2E3239', + '--sand-alert-overlay-focus-text-color': '#575E66', + '--sand-alert-overlay-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-disabled-selected-bg-color': '#788688', + '--sand-alert-overlay-disabled-selected-focus-color': '#E6E6E6', + '--sand-alert-overlay-disabled-selected-focus-bg-color': '#4C5059', + '--sand-alert-overlay-progress-color-rgb': '#6B6D73', + '--sand-alert-overlay-progress-bg-color-rgb': '#A1A1A1', + '--sand-alert-overlay-checkbox-color': '#858B92', + '--sand-alert-overlay-checkbox-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-formcheckboxitem-focus-text-color': '#575E66', + '--sand-alert-overlay-item-disabled-focus-bg-color': '#989CA2' + }, + greenColorSet1: { + '--sand-bg-color': '#272829', + '--sand-text-color-rgb': '#E6E6E6', + '--sand-text-sub-color': '#ABAEB3', + '--sand-shadow-color-rgb': '#000000', + '--sand-component-text-color-rgb': '#E6E6E6', + '--sand-component-text-sub-color-rgb': '#ABAEB3', + '--sand-component-bg-color': '#7D848C', + '--sand-component-active-indicator-bg-color': '#E6E6E6', + '--sand-component-inactive-indicator-bg-color': '#9DA2A7', + '--sand-focus-text-color': '#303030', + '--sand-focus-bg-color-rgb': '#E6E6E6', + '--sand-component-focus-text-color-rgb': '#333333', + '--sand-component-focus-active-indicator-bg-color': '#4C5059', + '--sand-component-focus-inactive-indicator-bg-color': '#B8B9BB', + '--sand-selected-color-rgb': '#E6E6E6', + '--sand-selected-text-color': '#E6E6E6', + '--sand-selected-bg-color': '#61828E', + '--sand-disabled-focus-bg-color': '#ABAEB3', + '--sand-disabled-selected-color': '#4C5059', + '--sand-disabled-selected-bg-color': '#E7E7E7', + '--sand-disabled-selected-focus-color': '#E7E7E7', + '--sand-disabled-selected-focus-bg-color': '#4C5059', + '--sand-fullscreen-bg-color': '#000000', + '--sand-overlay-bg-color-rgb': '#292929', + '--sand-selection-color': '#4C5059', + '--sand-selection-bg-color': '#3399FF', + '--sand-toggle-off-color': '#AEAEAE', + '--sand-toggle-off-bg-color': '#494949', + '--sand-toggle-on-color': '#E6E6E6', + '--sand-toggle-on-bg-color': '#61828E', + '--sand-progress-color-rgb': '#E6E6E6', + '--sand-progress-buffer-color': '#6B6D73', + '--sand-progress-bg-color-rgb': '#373A41', + '--sand-progress-highlighted-color': '#FFFFFF', + '--sand-progress-slider-color': '#8D9298', + '--sand-spinner-color-rgb': '#FFFFFF', + '--sand-checkbox-color': '#E6E6E6', + '--sand-item-disabled-focus-bg-color': '#E6E6E6', + '--sand-keyguide-bg-color-rgb': '#6B6D73', + '--sand-slider-disabled-knob-bg-color': '#666666', + '--sand-alert-overlay-bg-color-rgb': '#CACBCC', + '--sand-alert-overlay-text-color-rgb': '#2E3239', + '--sand-alert-overlay-text-sub-color': '#2E3239', + '--sand-alert-overlay-focus-text-color': '#575E66', + '--sand-alert-overlay-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-disabled-selected-bg-color': '#788688', + '--sand-alert-overlay-disabled-selected-focus-color': '#E6E6E6', + '--sand-alert-overlay-disabled-selected-focus-bg-color': '#4C5059', + '--sand-alert-overlay-progress-color-rgb': '#6B6D73', + '--sand-alert-overlay-progress-bg-color-rgb': '#A1A1A1', + '--sand-alert-overlay-checkbox-color': '#858B92', + '--sand-alert-overlay-checkbox-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-formcheckboxitem-focus-text-color': '#575E66', + '--sand-alert-overlay-item-disabled-focus-bg-color': '#989CA2' + }, + purpleColorSet1: { + '--sand-bg-color': '#272829', + '--sand-text-color-rgb': '#E6E6E6', + '--sand-text-sub-color': '#ABAEB3', + '--sand-shadow-color-rgb': '#000000', + '--sand-component-text-color-rgb': '#E6E6E6', + '--sand-component-text-sub-color-rgb': '#ABAEB3', + '--sand-component-bg-color': '#7D848C', + '--sand-component-active-indicator-bg-color': '#E6E6E6', + '--sand-component-inactive-indicator-bg-color': '#9DA2A7', + '--sand-focus-text-color': '#303030', + '--sand-focus-bg-color-rgb': '#E6E6E6', + '--sand-component-focus-text-color-rgb': '#333333', + '--sand-component-focus-active-indicator-bg-color': '#4C5059', + '--sand-component-focus-inactive-indicator-bg-color': '#B8B9BB', + '--sand-selected-color-rgb': '#E6E6E6', + '--sand-selected-text-color': '#E6E6E6', + '--sand-selected-bg-color': '#75518E', + '--sand-disabled-focus-bg-color': '#ABAEB3', + '--sand-disabled-selected-color': '#4C5059', + '--sand-disabled-selected-bg-color': '#E7E7E7', + '--sand-disabled-selected-focus-color': '#E7E7E7', + '--sand-disabled-selected-focus-bg-color': '#4C5059', + '--sand-fullscreen-bg-color': '#000000', + '--sand-overlay-bg-color-rgb': '#292929', + '--sand-selection-color': '#4C5059', + '--sand-selection-bg-color': '#3399FF', + '--sand-toggle-off-color': '#AEAEAE', + '--sand-toggle-off-bg-color': '#494949', + '--sand-toggle-on-color': '#E6E6E6', + '--sand-toggle-on-bg-color': '#755183', + '--sand-progress-color-rgb': '#E6E6E6', + '--sand-progress-buffer-color': '#6B6D73', + '--sand-progress-bg-color-rgb': '#373A41', + '--sand-progress-highlighted-color': '#FFFFFF', + '--sand-progress-slider-color': '#8D9298', + '--sand-spinner-color-rgb': '#FFFFFF', + '--sand-checkbox-color': '#E6E6E6', + '--sand-item-disabled-focus-bg-color': '#E6E6E6', + '--sand-keyguide-bg-color-rgb': '#6B6D73', + '--sand-slider-disabled-knob-bg-color': '#666666', + '--sand-alert-overlay-bg-color-rgb': '#6B6D73', + '--sand-alert-overlay-text-color-rgb': '#2E3239', + '--sand-alert-overlay-text-sub-color': '#2E3239', + '--sand-alert-overlay-focus-text-color': '#575E66', + '--sand-alert-overlay-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-disabled-selected-bg-color': '#788688', + '--sand-alert-overlay-disabled-selected-focus-color': '#E6E6E6', + '--sand-alert-overlay-disabled-selected-focus-bg-color': '#4C5059', + '--sand-alert-overlay-progress-color-rgb': '#6B6D73', + '--sand-alert-overlay-progress-bg-color-rgb': '#A1A1A1', + '--sand-alert-overlay-checkbox-color': '#858B92', + '--sand-alert-overlay-checkbox-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-formcheckboxitem-focus-text-color': '#575E66', + '--sand-alert-overlay-item-disabled-focus-bg-color': '#989CA2' + }, + redColorSet1: { + '--sand-bg-color': '#252424', + '--sand-text-color-rgb': '#E6E6E6', + '--sand-text-sub-color': '#ABAEB3', + '--sand-shadow-color-rgb': '#000000', + '--sand-component-text-color-rgb': '#E6E6E6', + '--sand-component-text-sub-color-rgb': '#ABAEB3', + '--sand-component-bg-color': '#7D848C', + '--sand-component-active-indicator-bg-color': '#E6E6E6', + '--sand-component-inactive-indicator-bg-color': '#9DA2A7', + '--sand-focus-text-color': '#303030', + '--sand-focus-bg-color-rgb': '#E6E6E6', + '--sand-component-focus-text-color-rgb': '#333333', + '--sand-component-focus-active-indicator-bg-color': '#4C5059', + '--sand-component-focus-inactive-indicator-bg-color': '#B8B9BB', + '--sand-selected-color-rgb': '#E6E6E6', + '--sand-selected-text-color': '#E6E6E6', + '--sand-selected-bg-color': '#8E6161', + '--sand-disabled-focus-bg-color': '#ABAEB3', + '--sand-disabled-selected-color': '#4C5059', + '--sand-disabled-selected-bg-color': '#E7E7E7', + '--sand-disabled-selected-focus-color': '#E7E7E7', + '--sand-disabled-selected-focus-bg-color': '#4C5059', + '--sand-fullscreen-bg-color': '#000000', + '--sand-overlay-bg-color-rgb': '#292929', + '--sand-selection-color': '#4C5059', + '--sand-selection-bg-color': '#3399FF', + '--sand-toggle-off-color': '#AEAEAE', + '--sand-toggle-off-bg-color': '#494949', + '--sand-toggle-on-color': '#E6E6E6', + '--sand-toggle-on-bg-color': '#8E6161', + '--sand-progress-color-rgb': '#E6E6E6', + '--sand-progress-buffer-color': '#6B6D73', + '--sand-progress-bg-color-rgb': '#373A41', + '--sand-progress-highlighted-color': '#FFFFFF', + '--sand-progress-slider-color': '#8D9298', + '--sand-spinner-color-rgb': '#FFFFFF', + '--sand-checkbox-color': '#E6E6E6', + '--sand-item-disabled-focus-bg-color': '#E6E6E6', + '--sand-keyguide-bg-color-rgb': '#6B6D73', + '--sand-slider-disabled-knob-bg-color': '#666666', + '--sand-alert-overlay-bg-color-rgb': '#CACBCC', + '--sand-alert-overlay-text-color-rgb': '#2E3239', + '--sand-alert-overlay-text-sub-color': '#2E3239', + '--sand-alert-overlay-focus-text-color': '#575E66', + '--sand-alert-overlay-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-disabled-selected-bg-color': '#788688', + '--sand-alert-overlay-disabled-selected-focus-color': '#E6E6E6', + '--sand-alert-overlay-disabled-selected-focus-bg-color': '#4C5059', + '--sand-alert-overlay-progress-color-rgb': '#6B6D73', + '--sand-alert-overlay-progress-bg-color-rgb': '#A1A1A1', + '--sand-alert-overlay-checkbox-color': '#858B92', + '--sand-alert-overlay-checkbox-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-formcheckboxitem-focus-text-color': '#575E66', + '--sand-alert-overlay-item-disabled-focus-bg-color': '#989CA2' + }, + blueColorSet2: { + '--sand-bg-color': '#181E3D', + '--sand-text-color-rgb': '#E6E6E6', + '--sand-text-sub-color': '#ABAEB3', + '--sand-shadow-color-rgb': '#000000', + '--sand-component-text-color-rgb': '#E6E6E6', + '--sand-component-text-sub-color-rgb': '#ABAEB3', + '--sand-component-bg-color': '#7D848C', + '--sand-component-active-indicator-bg-color': '#E6E6E6', + '--sand-component-inactive-indicator-bg-color': '#9DA2A7', + '--sand-focus-text-color': '#152DAC', + '--sand-focus-bg-color-rgb': '#E6E6E6', + '--sand-component-focus-text-color-rgb': '#1C31AA', + '--sand-component-focus-active-indicator-bg-color': '#4C5059', + '--sand-component-focus-inactive-indicator-bg-color': '#B8B9BB', + '--sand-selected-color-rgb': '#E6E6E6', + '--sand-selected-text-color': '#E6E6E6', + '--sand-selected-bg-color': '#61688E', + '--sand-disabled-focus-bg-color': '#ABAEB3', + '--sand-disabled-selected-color': '#4C5059', + '--sand-disabled-selected-bg-color': '#E7E7E7', + '--sand-disabled-selected-focus-color': '#E7E7E7', + '--sand-disabled-selected-focus-bg-color': '#4C5059', + '--sand-fullscreen-bg-color': '#000000', + '--sand-overlay-bg-color-rgb': '#1E233F', + '--sand-selection-color': '#4C5059', + '--sand-selection-bg-color': '#3399FF', + '--sand-toggle-off-color': '#787C90', + '--sand-toggle-off-bg-color': '#444C73', + '--sand-toggle-on-color': '#E6E6E6', + '--sand-toggle-on-bg-color': '#7B84B2', + '--sand-progress-color-rgb': '#E6E6E6', + '--sand-progress-buffer-color': '#6B6D73', + '--sand-progress-bg-color-rgb': '#373A41', + '--sand-progress-highlighted-color': '#FFFFFF', + '--sand-progress-slider-color': '#8D9298', + '--sand-spinner-color-rgb': '#FFFFFF', + '--sand-checkbox-color': '#E6E6E6', + '--sand-item-disabled-focus-bg-color': '#E6E6E6', + '--sand-keyguide-bg-color-rgb': '#6B6D73', + '--sand-slider-disabled-knob-bg-color': '#666666', + '--sand-alert-overlay-bg-color-rgb': '#CACBCC', + '--sand-alert-overlay-text-color-rgb': '#2E3239', + '--sand-alert-overlay-text-sub-color': '#2E3239', + '--sand-alert-overlay-focus-text-color': '#575E66', + '--sand-alert-overlay-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-disabled-selected-bg-color': '#788688', + '--sand-alert-overlay-disabled-selected-focus-color': '#E6E6E6', + '--sand-alert-overlay-disabled-selected-focus-bg-color': '#4C5059', + '--sand-alert-overlay-progress-color-rgb': '#6B6D73', + '--sand-alert-overlay-progress-bg-color-rgb': '#A1A1A1', + '--sand-alert-overlay-checkbox-color': '#858B92', + '--sand-alert-overlay-checkbox-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-formcheckboxitem-focus-text-color': '#575E66', + '--sand-alert-overlay-item-disabled-focus-bg-color': '#989CA2' + }, + greenColorSet2: { + '--sand-bg-color': '#102933', + '--sand-text-color-rgb': '#E6E6E6', + '--sand-text-sub-color': '#ABAEB3', + '--sand-shadow-color-rgb': '#000000', + '--sand-component-text-color-rgb': '#E6E6E6', + '--sand-component-text-sub-color-rgb': '#ABAEB3', + '--sand-component-bg-color': '#7D848C', + '--sand-component-active-indicator-bg-color': '#E6E6E6', + '--sand-component-inactive-indicator-bg-color': '#9DA2A7', + '--sand-focus-text-color': '#02435F', + '--sand-focus-bg-color-rgb': '#E6E6E6', + '--sand-component-focus-text-color-rgb': '#08455F', + '--sand-component-focus-active-indicator-bg-color': '#4C5059', + '--sand-component-focus-inactive-indicator-bg-color': '#B8B9BB', + '--sand-selected-color-rgb': '#E6E6E6', + '--sand-selected-text-color': '#E6E6E6', + '--sand-selected-bg-color': '#61828E', + '--sand-disabled-focus-bg-color': '#ABAEB3', + '--sand-disabled-selected-color': '#4C5059', + '--sand-disabled-selected-bg-color': '#E7E7E7', + '--sand-disabled-selected-focus-color': '#E7E7E7', + '--sand-disabled-selected-focus-bg-color': '#4C5059', + '--sand-fullscreen-bg-color': '#000000', + '--sand-overlay-bg-color-rgb': '#172D36', + '--sand-selection-color': '#4C5059', + '--sand-selection-bg-color': '#3399FF', + '--sand-toggle-off-color': '#6F7E84', + '--sand-toggle-off-bg-color': '#31505B', + '--sand-toggle-on-color': '#E6E6E6', + '--sand-toggle-on-bg-color': '#6B95A4', + '--sand-progress-color-rgb': '#E6E6E6', + '--sand-progress-buffer-color': '#6B6D73', + '--sand-progress-bg-color-rgb': '#373A41', + '--sand-progress-highlighted-color': '#FFFFFF', + '--sand-progress-slider-color': '#8D9298', + '--sand-spinner-color-rgb': '#FFFFFF', + '--sand-checkbox-color': '#E6E6E6', + '--sand-item-disabled-focus-bg-color': '#E6E6E6', + '--sand-keyguide-bg-color-rgb': '#6B6D73', + '--sand-slider-disabled-knob-bg-color': '#666666', + '--sand-alert-overlay-bg-color-rgb': '#CACBCC', + '--sand-alert-overlay-text-color-rgb': '#2E3239', + '--sand-alert-overlay-text-sub-color': '#2E3239', + '--sand-alert-overlay-focus-text-color': '#575E66', + '--sand-alert-overlay-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-disabled-selected-bg-color': '#788688', + '--sand-alert-overlay-disabled-selected-focus-color': '#E6E6E6', + '--sand-alert-overlay-disabled-selected-focus-bg-color': '#4C5059', + '--sand-alert-overlay-progress-color-rgb': '#6B6D73', + '--sand-alert-overlay-progress-bg-color-rgb': '#A1A1A1', + '--sand-alert-overlay-checkbox-color': '#858B92', + '--sand-alert-overlay-checkbox-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-formcheckboxitem-focus-text-color': '#575E66', + '--sand-alert-overlay-item-disabled-focus-bg-color': '#989CA2' + }, + purpleColorSet2: { + '--sand-bg-color': '#2B1941', + '--sand-text-color-rgb': '#E6E6E6', + '--sand-text-sub-color': '#848290', + '--sand-shadow-color-rgb': '#000000', + '--sand-component-text-color-rgb': '#E6E6E6', + '--sand-component-text-sub-color-rgb': '#ABAEB3', + '--sand-component-bg-color': '#7D848C', + '--sand-component-active-indicator-bg-color': '#E6E6E6', + '--sand-component-inactive-indicator-bg-color': '#9DA2A7', + '--sand-focus-text-color': '#FFFFFF', + '--sand-focus-bg-color-rgb': '#E6E6E6', + '--sand-component-focus-text-color-rgb': '#4D198E', + '--sand-component-focus-active-indicator-bg-color': '#4C5059', + '--sand-component-focus-inactive-indicator-bg-color': '#B8B9BB', + '--sand-selected-color-rgb': '#E6E6E6', + '--sand-selected-text-color': '#E6E6E6', + '--sand-selected-bg-color': '#76618E', + '--sand-disabled-focus-bg-color': '#ABAEB3', + '--sand-disabled-selected-color': '#4C5059', + '--sand-disabled-selected-bg-color': '#E7E7E7', + '--sand-disabled-selected-focus-color': '#E7E7E7', + '--sand-disabled-selected-focus-bg-color': '#4C5059', + '--sand-fullscreen-bg-color': '#000000', + '--sand-overlay-bg-color-rgb': '#2F1F43', + '--sand-selection-color': '#4C5059', + '--sand-selection-bg-color': '#3399FF', + '--sand-toggle-off-color': '#80778C', + '--sand-toggle-off-bg-color': '#54416C', + '--sand-toggle-on-color': '#E6E6E6', + '--sand-toggle-on-bg-color': '#8A75A2', + '--sand-progress-color-rgb': '#E6E6E6', + '--sand-progress-buffer-color': '#6B6D73', + '--sand-progress-bg-color-rgb': '#373A41', + '--sand-progress-highlighted-color': '#FFFFFF', + '--sand-progress-slider-color': '#8D9298', + '--sand-spinner-color-rgb': '#FFFFFF', + '--sand-checkbox-color': '#E6E6E6', + '--sand-item-disabled-focus-bg-color': '#E6E6E6', + '--sand-keyguide-bg-color-rgb': '#6B6D73', + '--sand-slider-disabled-knob-bg-color': '#666666', + '--sand-alert-overlay-bg-color-rgb': '#CACBCC', + '--sand-alert-overlay-text-color-rgb': '#2E3239', + '--sand-alert-overlay-text-sub-color': '#2E3239', + '--sand-alert-overlay-focus-text-color': '#575E66', + '--sand-alert-overlay-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-disabled-selected-bg-color': '#788688', + '--sand-alert-overlay-disabled-selected-focus-color': '#E6E6E6', + '--sand-alert-overlay-disabled-selected-focus-bg-color': '#4C5059', + '--sand-alert-overlay-progress-color-rgb': '#6B6D73', + '--sand-alert-overlay-progress-bg-color-rgb': '#A1A1A1', + '--sand-alert-overlay-checkbox-color': '#858B92', + '--sand-alert-overlay-checkbox-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-formcheckboxitem-focus-text-color': '#575E66', + '--sand-alert-overlay-item-disabled-focus-bg-color': '#989CA2' + }, + redColorSet2: { + '--sand-bg-color': '#3D1A1A', + '--sand-text-color-rgb': '#E6E6E6', + '--sand-text-sub-color': '#807477', + '--sand-shadow-color-rgb': '#000000', + '--sand-component-text-color-rgb': '#E6E6E6', + '--sand-component-text-sub-color-rgb': '#ABAEB3', + '--sand-component-bg-color': '#7D848C', + '--sand-component-active-indicator-bg-color': '#E6E6E6', + '--sand-component-inactive-indicator-bg-color': '#9DA2A7', + '--sand-focus-text-color': '#851919', + '--sand-focus-bg-color-rgb': '#E6E6E6', + '--sand-component-focus-text-color-rgb': '#841F1F', + '--sand-selected-color-rgb': '#E6E6E6', + '--sand-selected-text-color': '#E6E6E6', + '--sand-selected-bg-color': '#8E6161', + '--sand-disabled-focus-bg-color': '#ABAEB3', + '--sand-disabled-selected-color': '#4C5059', + '--sand-disabled-selected-bg-color': '#E7E7E7', + '--sand-disabled-selected-focus-color': '#E7E7E7', + '--sand-disabled-selected-focus-bg-color': '#4C5059', + '--sand-fullscreen-bg-color': '#000000', + '--sand-overlay-bg-color-rgb': '#3F2020', + '--sand-selection-color': '#4C5059', + '--sand-selection-bg-color': '#3399FF', + '--sand-toggle-off-color': '#927A7A', + '--sand-toggle-off-bg-color': '#784747', + '--sand-toggle-on-color': '#E6E6E6', + '--sand-toggle-on-bg-color': '#BB7D7D', + '--sand-progress-color-rgb': '#E6E6E6', + '--sand-progress-buffer-color': '#6B6D73', + '--sand-progress-bg-color-rgb': '#373A41', + '--sand-progress-highlighted-color': '#FFFFFF', + '--sand-progress-slider-color': '#8D9298', + '--sand-spinner-color-rgb': '#FFFFFF', + '--sand-checkbox-color': '#E6E6E6', + '--sand-item-disabled-focus-bg-color': '#E6E6E6', + '--sand-keyguide-bg-color-rgb': '#6B6D73', + '--sand-slider-disabled-knob-bg-color': '#666666', + '--sand-alert-overlay-bg-color-rgb': '#CACBCC', + '--sand-alert-overlay-text-color-rgb': '#2E3239', + '--sand-alert-overlay-text-sub-color': '#2E3239', + '--sand-alert-overlay-focus-text-color': '#575E66', + '--sand-alert-overlay-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-disabled-selected-bg-color': '#788688', + '--sand-alert-overlay-disabled-selected-focus-color': '#E6E6E6', + '--sand-alert-overlay-disabled-selected-focus-bg-color': '#4C5059', + '--sand-alert-overlay-progress-color-rgb': '#6B6D73', + '--sand-alert-overlay-progress-bg-color-rgb': '#A1A1A1', + '--sand-alert-overlay-checkbox-color': '#858B92', + '--sand-alert-overlay-checkbox-disabled-selected-color': '#FFFFFF', + '--sand-alert-overlay-formcheckboxitem-focus-text-color': '#575E66', + '--sand-alert-overlay-item-disabled-focus-bg-color': '#989CA2' + } +}; diff --git a/limestone/feature-custom-skin-generator/src/index.js b/limestone/feature-custom-skin-generator/src/index.js new file mode 100644 index 000000000..eb163ed13 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +const appElement = (); + +// In a browser environment, render instead of exporting +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/feature-custom-skin-generator/src/utils.js b/limestone/feature-custom-skin-generator/src/utils.js new file mode 100644 index 000000000..9afecd3fb --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/utils.js @@ -0,0 +1,221 @@ +// Function that checks if two variables are both hex colors +const hexColors = (color1, color2) => { + return /^#[0-9A-F]{6}$/i.test(color1) && /^#[0-9A-F]{6}$/i.test(color2); + // /^#[0-9A-F]{6}$/i.test(test_string) tests if test_string represents a color in hex. +}; + +// Function that converts a hex color to an array representing a RGB color +const convertHexToRGB = (hex) => { + let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + return result ? [ + parseInt(result[1], 16), + parseInt(result[2], 16), + parseInt(result[3], 16) + ] : null; +}; + +// Function that converts an array representing a RGB color to a hex color +const convertRGBToHex = (RGBColor) => { + const [r, g, b] = RGBColor; + return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); +}; + +// Function that works as part of the getRandomColor method +const colorAlgorithm = (array, lowerValues, highestValue, inc) => { + return array.map(value => { + if (value !== lowerValues[0]) { + if (lowerValues[0] < value - 20 * (inc + 1)) { + return value - 20 * (inc + 1); + } + return value; + } else { + if (value >= highestValue - 20 * (inc + 1) ) { + return value - 20 * (inc + 1); + } + return value; + } + }); +}; + +// Function that generates the content that will populate the css file that gets exported +const generateCSS = (colors, skinName, varNames) => { + if (!varNames) return; + return '.limestone-theme {\n' + + ` /* Skin Name: ${skinName ? skinName : 'Untitled'}; */\n` + + colors?.map((color, index) => { + if (!color) return ''; + + const [r, g, b] = hexColors(color, '#000000') ? convertHexToRGB(color) : convertHexToRGB('#000000'); + return ` ${varNames[index]}: ${varNames[index].includes('rgb') ? `${r}, ${g}, ${b}` : `${color}`};\n`; + }).join('') + `}\n`; +}; + +// Function that generates the css file that gets exported +const generateCSSFile = (fileName, colors) => { + if (typeof window !== 'undefined') { + let link = document.createElement('a'); + link.download = 'custom_skin.css'; + let blob = new window.Blob([colors], {type: 'text/css'}); + link.href = URL.createObjectURL(blob); + link.click(); + URL.revokeObjectURL(link.href); + } +}; + +// Function that generates a color related to a provided one based on an increment value +const getRandomColor = (colorToBeConverted, inc) => { + const color = convertHexToRGB(colorToBeConverted); + + const highestValue = Math.max(...color); + const lowerValues = color.filter(value => value !== highestValue); + let newColor = color; + + switch (lowerValues.length) { + case 0: { + if (highestValue < 85) { + newColor = color.map(value => { + return value + 20 * (inc + 1); + }); + } else if (highestValue < 170) { + if (!inc % 2) { + newColor = color.map(value => { + return value - 20 * (inc + 1); + }); + } else { + newColor = color.map(value => { + return value + 20 * inc; + }); + } + } else { + newColor = color.map(value => { + return value - 20 * (inc + 1); + }); + } + break; + } + case 1: { + if (highestValue < 85) { + newColor = color.map(value => { + if (value !== lowerValues[0]) { + return value + 20 * (inc + 1); + } + return value; + }); + } else if (highestValue < 170) { + if (!inc % 2) { + newColor = colorAlgorithm(color, lowerValues, highestValue, inc); + } else { + newColor = color.map(value => { + if (value !== lowerValues[0]) { + return value + 20 * inc; + } + return value; + }); + } + } else { + newColor = colorAlgorithm(color, lowerValues, highestValue, inc); + } + break; + } + case 2: { + newColor = color.map((value) => { + if (value === highestValue) { + if (value + 20 * (inc + 1) < 255) { + return value + 20 * (inc + 1); + } + return value; + } else { + if (highestValue + 20 * (inc + 1) < 255) { + return value; + } + if (highestValue > lowerValues[0] + 20 * (inc + 1) && highestValue > lowerValues[1] + 20 * (inc + 1)) { + return value + 20 * (inc + 1); + } + if (value - 20 * (inc + 1) > 0) { + return value - 20 * (inc + 1); + } + return 0; + } + }); + break; + } + } + + return convertRGBToHex(newColor); +}; + +// Function that generates an array of colors to be used as background colors +const generateBGColors = (background, limit) => { + let color = background; + let colorsArray = []; + + for (let i = 0; i <= limit; i++) { + let rc = getRandomColor(color, i); + colorsArray.push(rc); + } + + return colorsArray; +}; + +// Function that generates an array of colors to be used as text colors +const generateTextColors = (text, limit) => { + let color = text; + let colorsArray = []; + + for (let i = 0; i <= limit; i++) { + let rc = getRandomColor(color, i); + colorsArray.push(rc); + } + + return colorsArray; +}; + +// Function that generates an array of colors to be used in Main Panel from 2 colors +const generateColors = (background, text) => { + const bgColors = generateBGColors(background, 20); // +2 + const textColors = generateTextColors(text, 10); + + return [ + textColors[0].toUpperCase(), textColors[1].toUpperCase(), text, textColors[0].toUpperCase(), bgColors[2].toUpperCase(), + bgColors[3].toUpperCase(), bgColors[4].toUpperCase(), textColors[2].toUpperCase(), bgColors[3].toUpperCase(), + textColors[3].toUpperCase(), bgColors[5].toUpperCase(), bgColors[6].toUpperCase(), text, text, bgColors[7].toUpperCase(), + bgColors[8].toUpperCase(), textColors[3].toUpperCase(), bgColors[3].toUpperCase(), text, bgColors[3].toUpperCase(), background, + bgColors[9].toUpperCase(), textColors[3].toUpperCase(), bgColors[10].toUpperCase(), textColors[4].toUpperCase(), + bgColors[11].toUpperCase(), text, bgColors[12].toUpperCase(), text, textColors[5].toUpperCase(), bgColors[13].toUpperCase(), + textColors[2].toUpperCase(), textColors[6].toUpperCase(), textColors[2].toUpperCase(), text, bgColors[3].toUpperCase(), + bgColors[13].toUpperCase(), bgColors[10].toUpperCase(), bgColors[11].toUpperCase(), textColors[7].toUpperCase(), textColors[7].toUpperCase(), + textColors[8].toUpperCase(), textColors[2].toUpperCase(), bgColors[16].toUpperCase(), text, bgColors[5].toUpperCase(), + textColors[9].toUpperCase(), bgColors[19].toUpperCase(), textColors[10].toUpperCase(), textColors[2].toUpperCase(), textColors[8].toUpperCase(), + bgColors[18].toUpperCase() + ]; +}; + +// Function that returns an array of colors from a string provided from a css file with the same format as the one we create +const getColorsFromString = (colors) => { + try { + let colorSets = colors.map(color => color.split(':')); + colorSets = colorSets.map(colorSet => [colorSet[0], colorSet[1].split(';')[0].slice(1)]); + colorSets[0][1] = colorSets[0][1].split('*/')[0]; + + return colorSets; + } catch (err) { + throw new Error(err); + } +}; + +// Function that returns an array of colors different from a given preset +const getPresetDifferences = (actualColors, preset) => { + const values = Object.values(preset); + return actualColors.map((color, index) => color !== values[index] && color); +}; + +export { + convertHexToRGB, + convertRGBToHex, + generateColors, + generateCSS, + generateCSSFile, + getColorsFromString, + getPresetDifferences, + hexColors +}; diff --git a/limestone/feature-custom-skin-generator/src/views/MainPanel.js b/limestone/feature-custom-skin-generator/src/views/MainPanel.js new file mode 100644 index 000000000..e6b7e8186 --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/views/MainPanel.js @@ -0,0 +1,409 @@ +/* eslint-disable react/jsx-no-bind */ + +import Alert from '@enact/limestone/Alert'; +import BodyText from '@enact/limestone/BodyText'; +import Button from '@enact/limestone/Button'; +import CheckboxItem from '@enact/limestone/CheckboxItem'; +import Dropdown from '@enact/limestone/Dropdown'; +import Heading from '@enact/limestone/Heading'; +import Popup from '@enact/limestone/Popup'; +import RangePicker from '@enact/limestone/RangePicker'; +import Scroller from '@enact/limestone/Scroller'; +import Slider from '@enact/limestone/Slider'; +import Switch from '@enact/limestone/Switch'; +import SwitchItem from '@enact/limestone/SwitchItem'; +import TooltipDecorator from '@enact/limestone/TooltipDecorator'; +import {Cell, Column, Layout, Row} from '@enact/ui/Layout'; +import {useCallback, useEffect, useState} from 'react'; +import ReactDOM from 'react-dom'; + +import AutoPopup from '../components/AutoPopup/AutoPopup'; +import ColorFields from '../components/ColorFields/ColorFields'; +import ImportSkin from '../components/ImportSkin/ImportSkin'; +import OutputField from '../components/OutputField/OutputField'; + +import {presets} from '../constants'; + +import { + convertHexToRGB, + convertRGBToHex, + generateColors, + generateCSS, + getColorsFromString, + hexColors +} from '../utils'; + +import styles from '../common/styles.module.less'; +import css from './MainPanel.module.less'; + +const TooltipButton = TooltipDecorator({tooltipDestinationProp: 'decoration'}, Button); + +function scrollTo (ref) { + scrollTo = ref; //eslint-disable-line +} + +const MainPanel = () => { + const [skinName, setSkinName] = useState(''); + + // All the colors to be used by the app + const [BGColor, setBGColor] = useState('#000000'); + const [TextColorRGB, setTextColorRGB] = useState('#E6E6E6'); + const [TextSubColor, setTextSubColor] = useState('#ABAEB3'); + const [ShadowColorRGB, setShadowColorRGB] = useState('#000000'); + const [ComponentTextColorRGB, setComponentTextColorRGB] = useState('#E6E6E6'); + const [ComponentTextSubColorRGB, setComponentTextSubColorRGB] = useState('#ABAEB3'); + const [ComponentBGColor, setComponentBGColor] = useState('#7D848C'); + const [ComponentActiveIndicatorBgColor, setComponentActiveIndicatorBgColor] = useState('#E6E6E6'); + const [ComponentInactiveIndicatorBgColor, setComponentInactiveIndicatorBgColor] = useState('#9DA2A7'); + const [FocusTextColor, setFocusTextColor] = useState('#FFFFFF'); + const [FocusBGColorRGB, setFocusBGColorRGB] = useState('#E6E6E6'); + const [ComponentFocusTextColorRGB, setComponentFocusTextColorRGB] = useState('#4C5059'); + const [ComponentFocusActiveIndicatorBgColor, setComponentFocusActiveIndicatorBgColor] = useState('#4C5059'); + const [ComponentFocusInactiveIndicatorBgColor, setComponentFocusInactiveIndicatorBgColor] = useState('#B8B9BB'); + const [SelectedColorRGB, setSelectedColorRGB] = useState('#E6E6E6'); + const [SelectedTextColor, setSelectedTextColor] = useState('#E6E6E6'); + const [SelectedBGColor, setSelectedBGColor] = useState('#3E454D'); + const [DisabledFocusBGColor, setDisabledFocusBGColor] = useState('#ABAEB3'); + const [DisabledSelectedColor, setDisabledSelectedColor] = useState('#4C5059'); + const [DisabledSelectedBGColor, setDisabledSelectedBgColor] = useState('#E6E6E6'); + const [DisabledSelectedFocusColor, setDisabledSelectedFocusColor] = useState('#E6E6E6'); + const [DisabledSelectedFocusBGColor, setDisabledSelectedFocusBGColor] = useState('#4C5059'); + const [FullscreenBGColor, setFullscreenBGColor] = useState('#000000'); + const [OverlayBGColorRGB, setOverlayBGColorRGB] = useState('#575E66'); + const [SelectionColor, setSelectionColor] = useState('#4C5059'); + const [SelectionBGColor, setSelectionBGColor] = useState('#3399FF'); + const [ToggleOffColor, setToggleOffColor] = useState('#AEAEAE'); + const [ToggleOffBGColor, setToggleOffBGColor] = useState('#777777'); + const [ToggleOnColor, setToggleOnColor] = useState('#E6E6E6'); + const [ToggleOnBGColor, setToggleOnBGColor] = useState('#30AD6B'); + const [ProgressColorRGB, setProgressColorRGB] = useState('#E6E6E6'); + const [ProgressBufferColor, setProgressBufferColor] = useState('#6B6D73'); + const [ProgressBGColorRGB, setProgressBGColorRGB] = useState('#373A41'); + const [ProgressHighlightedColor, setProgressHighlightedColor] = useState('#FFFFFF'); + const [ProgressSliderColor, setProgressSliderColor] = useState('#8D9298'); + const [SpinnerColorRGB, setSpinnerColorRGB] = useState('#FFFFFF'); + const [CheckboxColor, setCheckboxColor] = useState('#E6E6E6'); + const [ItemDisabledFocusBGColor, setItemDisabledFocusBGColor] = useState('#E6E6E6'); + const [KeyguideBGColorRGB, setKeyguideBGColorRGB] = useState('#373A41'); + const [SliderDisabledKnobBgColor, setSliderDisabledKnobBgColor] = useState('#666666'); + const [AlertOverlayBGColorRGB, setAlertOverlayBGColorRGB] = useState('#CACBCC'); + const [AlertOverlayTextColorRGB, setAlertOverlayTextColorRGB] = useState('#2E3239'); + const [AlertOverlayTextSubColor, setAlertOverlayTextSubColor] = useState('#2E3239'); + const [AlertOverlayFocusTextColor, setAlertOverlayFocusTextColor] = useState('#575E66'); + const [AlertOverlayDisabledSelectedColor, setAlertOverlayDisabledSelectedColor] = useState('#FFFFFF'); + const [AlertOverlayDisabledSelectedBGColor, setAlertOverlayDisabledSelectedBGColor] = useState('#788688'); + const [AlertOverlayDisabledSelectedFocusColor, setAlertOverlayDisabledSelectedFocusColor] = useState('#E6E6E6'); + const [AlertOverlayDisabledSelectedFocusBGColor, setAlertOverlayDisabledSelectedFocusBGColor] = useState('#4C5059'); + const [AlertOverlayProgressColorRGB, setAlertOverlayProgressColorRGB] = useState('#373A41'); + const [AlertOverlayProgressBGColorRGB, setAlertOverlayProgressBGColorRGB] = useState('#A1A1A1'); + const [AlertOverlayCheckboxColor, setAlertOverlayCheckboxColor] = useState('#858B92'); + const [AlertOverlayCheckboxDisabledSelectedColor, setAlertOverlayCheckboxDisabledSelectedColor] = useState('#FFFFFF'); + const [AlertOverlayFormcheckboxitemFocusTextColor, setAlertOverlayFormcheckboxitemFocusTextColor] = useState('#575E66'); + const [AlertOverlayItemDisabledFocusBGColor, setAlertOverlayItemDisabledFocusBGColor] = useState('#989CA2'); + + // Array containing all the values for our colors + const colors = [BGColor, TextColorRGB, TextSubColor, ShadowColorRGB, ComponentTextColorRGB, ComponentTextSubColorRGB, ComponentBGColor, ComponentActiveIndicatorBgColor, + ComponentInactiveIndicatorBgColor, FocusTextColor, FocusBGColorRGB, ComponentFocusTextColorRGB, ComponentFocusActiveIndicatorBgColor, ComponentFocusInactiveIndicatorBgColor, + SelectedColorRGB, SelectedTextColor, SelectedBGColor, DisabledFocusBGColor, DisabledSelectedColor, DisabledSelectedBGColor, DisabledSelectedFocusColor, + DisabledSelectedFocusBGColor, FullscreenBGColor, OverlayBGColorRGB, SelectionColor, SelectionBGColor, ToggleOffColor, ToggleOffBGColor, ToggleOnColor, ToggleOnBGColor, + ProgressColorRGB, ProgressBufferColor, ProgressBGColorRGB, ProgressHighlightedColor, ProgressSliderColor, SpinnerColorRGB, CheckboxColor, ItemDisabledFocusBGColor, KeyguideBGColorRGB, SliderDisabledKnobBgColor, AlertOverlayBGColorRGB, + AlertOverlayTextColorRGB, AlertOverlayTextSubColor, AlertOverlayFocusTextColor, AlertOverlayDisabledSelectedColor, AlertOverlayDisabledSelectedBGColor, + AlertOverlayDisabledSelectedFocusColor, AlertOverlayDisabledSelectedFocusBGColor, AlertOverlayProgressColorRGB, AlertOverlayProgressBGColorRGB, AlertOverlayCheckboxColor, + AlertOverlayCheckboxDisabledSelectedColor, AlertOverlayFormcheckboxitemFocusTextColor, AlertOverlayItemDisabledFocusBGColor + ]; + + // Array containing all the setter functions for our colors + const setColors = [setBGColor, setTextColorRGB, setTextSubColor, setShadowColorRGB, setComponentTextColorRGB, setComponentTextSubColorRGB, setComponentBGColor, setComponentActiveIndicatorBgColor, + setComponentInactiveIndicatorBgColor, setFocusTextColor, setFocusBGColorRGB, + setComponentFocusTextColorRGB, setComponentFocusActiveIndicatorBgColor, setComponentFocusInactiveIndicatorBgColor, setSelectedColorRGB, setSelectedTextColor, setSelectedBGColor, setDisabledFocusBGColor, setDisabledSelectedColor, + setDisabledSelectedBgColor, setDisabledSelectedFocusColor, setDisabledSelectedFocusBGColor, setFullscreenBGColor, setOverlayBGColorRGB, + setSelectionColor, setSelectionBGColor, setToggleOffColor, setToggleOffBGColor, setToggleOnColor, setToggleOnBGColor, setProgressColorRGB, setProgressBufferColor, + setProgressBGColorRGB, setProgressHighlightedColor, setProgressSliderColor, setSpinnerColorRGB, setCheckboxColor, setItemDisabledFocusBGColor, setKeyguideBGColorRGB, setSliderDisabledKnobBgColor, setAlertOverlayBGColorRGB, + setAlertOverlayTextColorRGB, setAlertOverlayTextSubColor, setAlertOverlayFocusTextColor, setAlertOverlayDisabledSelectedColor, setAlertOverlayDisabledSelectedBGColor, + setAlertOverlayDisabledSelectedFocusColor, setAlertOverlayDisabledSelectedFocusBGColor, setAlertOverlayProgressColorRGB, setAlertOverlayProgressBGColorRGB, + setAlertOverlayCheckboxColor, setAlertOverlayCheckboxDisabledSelectedColor, setAlertOverlayFormcheckboxitemFocusTextColor, setAlertOverlayItemDisabledFocusBGColor + ]; + + // Array containing all the names for our colors + const propNames = ['Background Color', 'Text Color RGB', 'Text Sub Color', 'Shadow Color RGB', 'Component Text Color RGB', 'Component Text Sub Color RGB', 'Component Bg Color', 'Component Active Indicator Bg Color', 'Component Inactive Indicator Bg Color', 'Focus Text Color', 'Focus Bg Color RGB', + 'Component Focus Text Color RGB', 'Component Focus Active Indicator Bg Color', 'Component Focus Inactive Indicator Bg Color', 'Selected Color RGB', 'Selected Text Color', 'Selected Bg Color', 'Disabled Focus Bg Color', 'Disabled Selected Color', + 'Disabled Selected Bg Color', 'Disabled Selected Focus Color', 'Disabled Selected Focus Bg Color', 'Fullscreen Bg Color', 'Overlay Bg Color RGB', + 'Selection Color', 'Selection Bg Color', 'Toggle Off Color', 'Toggle Off Bg Color', 'Toggle On Color', 'Toggle On Bg Color', 'Progress Color RGB', + 'Progress Buffer Color', 'Progress Bg Color RGB', 'Progress Highlighted Color', 'Progress Slider Color', 'Spinner Color RGB', 'Checkbox Color', 'Item Disabled Focus Bg Color', 'Keyguide Bg Color RGB', 'Slider Disabled Knob Bg Color', + 'Alert Overlay Bg Color RGB', 'Alert Overlay Text Color RGB', 'Alert Overlay Text Sub Color', 'Alert Overlay Focus Text Color', 'Alert Overlay Disabled Selected Color', + 'Alert Overlay Disabled Selected Bg Color', 'Alert Overlay Disabled Selected Focus Color', 'Alert Overlay Disabled Selected Focus Bg Color', + 'Alert Overlay Progress Color RGB', 'Alert Overlay Progress Bg Color RGB', 'Alert Overlay Checkbox Color', 'Alert Overlay Checkbox Disabled Selected Color', + 'Alert Overlay Formcheckboxitem Focus Text Color', 'Alert Overlay Item Disabled Focus Bg Color' + ]; + + // Array containing all the css names for our colors + const varNames = ['--sand-bg-color', '--sand-text-color-rgb', '--sand-text-sub-color', '--sand-shadow-color-rgb', '--sand-component-text-color-rgb', '--sand-component-text-sub-color-rgb', '--sand-component-bg-color', + '--sand-component-active-indicator-bg-color', '--sand-component-inactive-indicator-bg-color', '--sand-focus-text-color', '--sand-focus-bg-color-rgb', '--sand-component-focus-text-color-rgb', '--sand-component-focus-active-indicator-bg-color', + '--sand-component-focus-inactive-indicator-bg-color', '--sand-selected-color-rgb', '--sand-selected-text-color', + '--sand-selected-bg-color', '--sand-disabled-focus-bg-color', '--sand-disabled-selected-color', '--sand-disabled-selected-bg-color', '--sand-disabled-selected-focus-color', + '--sand-disabled-selected-focus-bg-color', '--sand-fullscreen-bg-color', '--sand-overlay-bg-color-rgb', '--sand-selection-color', '--sand-selection-bg-color', + '--sand-toggle-off-color', '--sand-toggle-off-bg-color', '--sand-toggle-on-color', '--sand-toggle-on-bg-color', '--sand-progress-color-rgb', '--sand-progress-buffer-color', + '--sand-progress-bg-color-rgb', '--sand-progress-highlighted-color', '--sand-progress-slider-color', '--sand-spinner-color-rgb', '--sand-checkbox-color', '--sand-item-disabled-focus-bg-color', '--sand-keyguide-bg-color-rgb', '--sand-slider-disabled-knob-bg-color', + '--sand-alert-overlay-bg-color-rgb', '--sand-alert-overlay-text-color-rgb', '--sand-alert-overlay-text-sub-color', '--sand-alert-overlay-focus-text-color', + '--sand-alert-overlay-disabled-selected-color', '--sand-alert-overlay-disabled-selected-bg-color', '--sand-alert-overlay-disabled-selected-focus-color', + '--sand-alert-overlay-disabled-selected-focus-bg-color', '--sand-alert-overlay-progress-color-rgb', '--sand-alert-overlay-progress-bg-color-rgb', + '--sand-alert-overlay-checkbox-color', '--sand-alert-overlay-checkbox-disabled-selected-color', '--sand-alert-overlay-formcheckboxitem-focus-text-color', + '--sand-alert-overlay-item-disabled-focus-bg-color' + ]; + + const [alert, setAlert] = useState(false); + const [auto, setAuto] = useState(false); + const [changes, setChanges] = useState(0); + const [fullCSS, setFullCSS] = useState(false); + const [openPopup, setOpenPopup] = useState(false); + const [openWarning, setOpenWarning] = useState(false); + const [presetActive, setActivePreset] = useState('defaultTheme'); + + // Function that sets all the colors to auto + const setColorsToAuto = (autoColors) => { + for (let i = 0; i < autoColors.length; i++) { + setColors[i + 2](autoColors[i]); + } + }; + + useEffect(() => { + if (auto && hexColors(BGColor, TextColorRGB)) { + setColorsToAuto(generateColors(BGColor, TextColorRGB)); + } + // eslint-disable-next-line + }, [auto, BGColor, TextColorRGB]); + + // Function that sets the colors to those imported from a css file + function setColorsFromImport (newColors) { + const colorSet = getColorsFromString(newColors); + setActivePreset('defaultTheme'); + + if (colorSet !== null) { + Promise.resolve().then(() => { + ReactDOM.unstable_batchedUpdates(() => { + setAuto(false); + if (colorSet[0][0].includes('Skin Name')) { + setSkinName(colorSet[0][1]); + colorSet.shift(); + } + colorSet.map((item) => { + const index = varNames.indexOf(item[0]); + if (index !== -1) { + if (item[0].includes('rgb')) { + const [r, g, b] = item[1].split(', '); + setColors[index](convertRGBToHex([parseInt(r), parseInt(g), parseInt(b)])); + } else { + setColors[index](item[1]); + } + } + }); + }); + }); + } else { + setAlert(true); + } + } + + // Function that sets the colors to those of a preset + function setColorsFromPreset (presetColors) { + const colorSet = presets[`${presetColors}`]; + setActivePreset(presetColors); + + for (let color in colorSet) { + const index = varNames.indexOf(color); + setColors[index](colorSet[color]); + } + } + + // Function that sets a color to that received from an input + function onChangeInput (props) { + const event = props?.event; + const index = props?.index; + const name = props?.name; + let value = event?.value; + + if (name === 'Skin Name') { + setSkinName(value); + } else { + setColors[index](value.toUpperCase()); + if (!auto) { + setChanges(1); + } + } + } + + // Function that handles the switch to auto behavior + function onChangeSwitch () { + if (auto) { + setAuto(!auto); + } else if (changes !== 0) { + setOpenWarning(true); + } else { + setAuto(!auto); + } + } + + // Removes some css styles included by the handleOpen and handleFocus handlers. + function handleOnBlur () { + if (typeof document !== 'undefined') { + document.querySelector('#temporaryStylesheet')?.remove(); + } + } + + // Appends some styles via javascript. The styles must be appended for the + // non live demo components to have the basic limestone appearance. + function handleOnFocus () { + if (typeof document !== 'undefined') { + const sheet = document.createElement('style'); + sheet.id = 'temporaryStylesheet'; + sheet.innerHTML = `.limestone-theme { + --sand-component-focus-text-color-rgb: 76, 80, 89; + --sand-focus-bg-color-rgb: 230, 230, 230; + --sand-shadow-color-rgb: none; + }`; + document.body?.appendChild(sheet); + } + } + + const handleFullCSS = useCallback(() => { + setFullCSS((val) => !val); + }, []); + + function handleOpenPopup () { + setOpenPopup(!openPopup); + } + + function turnAlertOff () { + setAlert(false); + } + + // Function that sets the colors to those default to the selected preset + function setDefaultState () { + setAuto(false); + setColorsFromPreset(presetActive); + } + + function handleScrollTop () { + return scrollTo({position: {x: 0, y: 0}}); + } + + // Appends some styles via javascript. The styles must be appended for the + // live demo components to have the skin appearance. + if (typeof document !== 'undefined') { + const sheet = document.createElement('style'); + sheet.id = 'custom-skin'; + sheet.innerHTML = generateCSS(colors, skinName, varNames); + document.getElementById('custom-skin')?.remove(); + document.body?.appendChild(sheet); + } + + let screenWidth = typeof window !== 'undefined' ? window.screen.width : 0; + let windowWidth = typeof window !== 'undefined' ? window.innerWidth : 0; + let previewDropdownWidth = () => { + if (screenWidth <= 1920) { + if (windowWidth < 1080) { + return 'tiny'; + } else { + return 'medium'; + } + } else if ( screenWidth > 1920) { + if (windowWidth < 2160) { + return 'tiny'; + } else { + return 'medium'; + } + } + }; + + return ( + + + {scrollTo = fn}} //eslint-disable-line + focusableScrollbar + horizontalScrollbar="hidden" + > + Custom skin generator + + + Wrong type of file imported! + + + + + + + + + Generate colors automatically + + + + + + + + + + + + + + + + + + Live DEMO +
    + + + + + + + + +
    + Checkbox + Toggle + + + + {['Item 1', 'Item 2', 'Item 3']} + + + + Hello + + +
    +
    +
    + ); +}; + +export default MainPanel; diff --git a/limestone/feature-custom-skin-generator/src/views/MainPanel.module.less b/limestone/feature-custom-skin-generator/src/views/MainPanel.module.less new file mode 100644 index 000000000..3dea8366f --- /dev/null +++ b/limestone/feature-custom-skin-generator/src/views/MainPanel.module.less @@ -0,0 +1,96 @@ +// MainPanel.module.less + +.mainPanel { + height: 100%; + + .customizeSection { + padding: 24px; + + .appTitle { + color: #FB9039; + padding-bottom: 48px; + border: none; + font-weight: 200; + } + + .switchLabel { + display: inline-block; + color: #e6e6e6; + } + + .switchControl { + --sand-focus-bg-color-rgb: 125, 132, 140; + --sand-selected-color-rgb: 0, 0, 0; /* Selected Color (Must be RGB comma separated format) */ + --sand-shadow-color-rgb: none; + --sand-toggle-on-color: #505050; + --sand-toggle-on-bg-color: #e6e6e6; /* Toggle On Background Color */ + --sand-toggle-off-color: #4c596a; /* Toggle Off Color */ + --sand-toggle-off-bg-color: #abaeb3; /* Toggle Off Background Color */ + margin: 18px; + } + + .generateStyleContainer { + flex-wrap: wrap; + } + } + + .topButtonContainer { + align-self: flex-end; + text-align: center; + + .topButton { + --sand-component-bg-color: #7D848C; + --sand-component-focus-text-color-rgb: 76, 80, 89; + --sand-component-text-color-rgb: 230, 230, 230; + --sand-focus-bg-color-rgb: 255, 255, 255; + --sand-shadow-color-rgb: none; + color: #e6e6e6; + margin-left: 18px; + margin-right: 18px; + text-transform: uppercase; + } + } + + .previewSection { + background-color: var(--sand-bg-color, #4c596a); + border-radius: 12px; + margin: 24px; + padding: 0 24px; + display: flex; + justify-content: center; + + .previewTitle { + --sand-text-color: #e6e6e6; + display: flex; + justify-content: center; + min-height: auto; + padding: 24px 0; + margin: 0 24px; + font-weight: 200; + } + + .previewComponents { + justify-content: space-around; + width: 100%; + + .previewButtons { + flex-wrap: wrap; + justify-content: center; + + .button { + min-width: 339px; + margin: 12px; + } + + & > * { + margin: 15px; + } + } + + .previewDropdown, + .previewPopup { + align-self: center; + } + } + } +} diff --git a/limestone/pattern-account-icon/.eslintignore b/limestone/pattern-account-icon/.eslintignore new file mode 100644 index 000000000..93c033154 --- /dev/null +++ b/limestone/pattern-account-icon/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-account-icon/.gitignore b/limestone/pattern-account-icon/.gitignore new file mode 100644 index 000000000..f94ea516b --- /dev/null +++ b/limestone/pattern-account-icon/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-account-icon/LICENSE b/limestone/pattern-account-icon/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-account-icon/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-account-icon/README.md b/limestone/pattern-account-icon/README.md new file mode 100644 index 000000000..7380c3a1a --- /dev/null +++ b/limestone/pattern-account-icon/README.md @@ -0,0 +1,9 @@ +## Account Icon pattern + +A sample Enact application that uses AccountIcon (login/logout). + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/pattern-account-icon/package.json b/limestone/pattern-account-icon/package.json new file mode 100644 index 000000000..09dfb297a --- /dev/null +++ b/limestone/pattern-account-icon/package.json @@ -0,0 +1,45 @@ +{ + "name": "pattern-account-icon", + "version": "1.0.0", + "description": "An Enact application demonstrating AccountIcon.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Account Icon Pattern", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-account-icon/resources/ilibmanifest.json b/limestone/pattern-account-icon/resources/ilibmanifest.json new file mode 100644 index 000000000..f32ee1d3f --- /dev/null +++ b/limestone/pattern-account-icon/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-account-icon/src/App/App.js b/limestone/pattern-account-icon/src/App/App.js new file mode 100644 index 000000000..6b30039b7 --- /dev/null +++ b/limestone/pattern-account-icon/src/App/App.js @@ -0,0 +1,24 @@ +import kind from '@enact/core/kind'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; + +import MainPanel from '../views/MainPanel'; + +const AppBase = kind({ + name: 'App', + + render: function (props) { + return ( +
    + +
    + ); + } +}); + +const App = ThemeDecorator(AppBase); + +export default App; +export { + App, + AppBase +}; diff --git a/limestone/pattern-account-icon/src/App/package.json b/limestone/pattern-account-icon/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-account-icon/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-account-icon/src/components/AccountIcon.js b/limestone/pattern-account-icon/src/components/AccountIcon.js new file mode 100644 index 000000000..8d1cf6c1e --- /dev/null +++ b/limestone/pattern-account-icon/src/components/AccountIcon.js @@ -0,0 +1,21 @@ +import Icon from '@enact/limestone/Icon'; +import PropTypes from 'prop-types'; + +// For custom style of account icon +import css from './AccountIcon.module.less'; + +const AccountIcon = ({bgColor, children}) => { + const accountStyle = { + backgroundColor: bgColor + }; + + return ( + {children} + ); +}; + +AccountIcon.propTypes = { + bgColor: PropTypes.string +}; + +export default AccountIcon; diff --git a/limestone/pattern-account-icon/src/components/AccountIcon.module.less b/limestone/pattern-account-icon/src/components/AccountIcon.module.less new file mode 100644 index 000000000..001d39070 --- /dev/null +++ b/limestone/pattern-account-icon/src/components/AccountIcon.module.less @@ -0,0 +1,6 @@ +.icon { + border-radius: 50%; + margin: 0; + font-size: 48px; + overflow: visible; +} diff --git a/limestone/pattern-account-icon/src/components/README.md b/limestone/pattern-account-icon/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/pattern-account-icon/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/pattern-account-icon/src/index.js b/limestone/pattern-account-icon/src/index.js new file mode 100644 index 000000000..57c20e6fd --- /dev/null +++ b/limestone/pattern-account-icon/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +const appElement = (); + +// In a browser environment, render the app to the document. +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-account-icon/src/views/MainPanel.js b/limestone/pattern-account-icon/src/views/MainPanel.js new file mode 100644 index 000000000..0056579b2 --- /dev/null +++ b/limestone/pattern-account-icon/src/views/MainPanel.js @@ -0,0 +1,42 @@ +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import {Header, Panel} from '@enact/limestone/Panels'; +import {Cell, Row} from '@enact/ui/Layout'; +import PropTypes from 'prop-types'; + +import AccountIcon from '../components/AccountIcon'; + +// In limestone theme, the text color changes to gray tone when the button is focused. +// A custom style is needed to prevent this and maintain the white tone text color. +import css from './MainPanel.module.less'; + +const MainPanel = kind({ + name: 'MainPanel', + + propTypes: { + bgColor: PropTypes.string, + initials: PropTypes.string + }, + + defaultProps: { + bgColor: 'red' + }, + + render: ({bgColor, initials, ...rest}) => { + return ( + +
    + + + + ) + }, + + handlers: { + onSelectBreadcrumb: handle( + adaptEvent((ev, props) => ({index: (props.index - 1), itemIndex: null}), forward('onChangePanel')), + forward('onSelectBreadcrumb') + ), + onChangePanel: handle( + adaptEvent(({index}) => ({index: 1, itemIndex: index}), forward('onChangePanel')) + ) + }, + + render: ({debug, DebugButton, itemIndex, onChangePanel, onSelectBreadcrumb, ...rest}) => { + delete rest.onToggleDebug; + + let secondaryPanel = ; + const item = items[itemIndex]; + if (item) { + const ItemPanel = item.component; + secondaryPanel = ( + + ); + } + return ( + + + {secondaryPanel} + + ); + } +}); + +const AppDecorator = hoc((config, Wrapped) => { + const Component = ({defaultDebug, defaultIndex, defaultItemIndex, ...rest}) => { + const [debug, setDebug] = useState(defaultDebug); + const [index, setIndex] = useState(defaultIndex); + const [itemIndex, setItemIndex] = useState(defaultItemIndex); + + const handleChangePanel = useCallback((ev) => { + forward('onChangePanel', ev, rest); + setIndex(ev.index); + setItemIndex(ev.itemIndex); + }, [rest]); + + const handleToggleDebug = useCallback(() => { + setDebug((prevDebug) => { + const nextDebug = {debug: !prevDebug}; + forward('onToggleDebug', nextDebug, rest); + + return !prevDebug; + }); + }, [rest]); + + return ( + + ); + }; + + Component.displayName = 'AppDecorator'; + + Component.propTypes = { + defaultDebug: PropTypes.bool, + defaultIndex: PropTypes.number, + defaultItemIndex: PropTypes.number + }; + + Component.defaultProps = { + defaultDebug: false, + defaultIndex: 0, + defaultItemIndex: 0 + }; + + return Component; +}); + +const AppBase = AppDecorator(Sample); +const App = ThemeDecorator(AppBase); + +export default App; +export {App, AppBase}; diff --git a/limestone/pattern-layout/src/App/App.less b/limestone/pattern-layout/src/App/App.less new file mode 100644 index 000000000..23782defd --- /dev/null +++ b/limestone/pattern-layout/src/App/App.less @@ -0,0 +1,3 @@ +.app { + // styles can be put here +} diff --git a/limestone/pattern-layout/src/App/package.json b/limestone/pattern-layout/src/App/package.json new file mode 100644 index 000000000..441552583 --- /dev/null +++ b/limestone/pattern-layout/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-layout/src/components/README.md b/limestone/pattern-layout/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/pattern-layout/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/pattern-layout/src/components/util.js b/limestone/pattern-layout/src/components/util.js new file mode 100644 index 000000000..a5b89eb93 --- /dev/null +++ b/limestone/pattern-layout/src/components/util.js @@ -0,0 +1,23 @@ +// +// Utility Functions +// + +import qs from 'query-string'; + +/* + * Take an object, prune out the null/undefined values, and save that to the QUERY_STRING in the URL + */ +const saveObjToQueryString = (obj) => { + const params = qs.parse(window.location.search); + const allParams = Object.assign(params, obj); // Merge objects, preferring values in `obj` + + // Remove null and unassigned params + Object.keys(allParams).forEach((p) => (allParams[p] == null) && delete allParams[p]); + + const stringified = qs.stringify(allParams); + window.history.pushState(obj, '', (stringified ? `?${stringified}` : '')); +}; + +export { + saveObjToQueryString +}; diff --git a/limestone/pattern-layout/src/index.js b/limestone/pattern-layout/src/index.js new file mode 100644 index 000000000..2f28c6b50 --- /dev/null +++ b/limestone/pattern-layout/src/index.js @@ -0,0 +1,52 @@ +/* eslint-disable react/jsx-no-bind */ +/* global ENACT_PACK_ISOMORPHIC */ +import qs from 'query-string'; +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; +import {saveObjToQueryString} from './components/util'; + +let appElement = ; + +// In a browser environment, render instead of exporting +if (typeof window !== 'undefined') { + // On initial load, we'll read the query-string and set up the default values + const args = qs.parse(window.location.search); + const debug = (args.debug === 'true'); + const index = parseInt(args.index || 0); + const itemIndex = parseInt(args.itemIndex || 0); + + const handleChangePanel = (ev) => { + // Clone the ev object so we don't taint other callbacks + const newParams = Object.assign({}, ev); + + // Remove `index` if it's set to `0`, null, or undefined. We can simply not have it, since 0 is the default. + if (!newParams.index) { + newParams.index = null; + } + saveObjToQueryString(newParams); + }; + + const handleChangeDebug = (ev) => { + // Clone the ev object so we don't taint other callbacks + const newParams = Object.assign({}, ev); + if (!newParams.debug) { + newParams.debug = null; + } + saveObjToQueryString(newParams); + }; + + appElement = ( + + ); + + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-layout/src/views/Details.js b/limestone/pattern-layout/src/views/Details.js new file mode 100644 index 000000000..ea30c8596 --- /dev/null +++ b/limestone/pattern-layout/src/views/Details.js @@ -0,0 +1,79 @@ +import kind from '@enact/core/kind'; +import BodyText from '@enact/limestone/BodyText'; +import Button from '@enact/limestone/Button'; +import Image from '@enact/limestone/Image'; +import Item from '@enact/limestone/Item'; +import Marquee from '@enact/limestone/Marquee'; +import {Header, Panel} from '@enact/limestone/Panels'; +import {Cell, Column, Layout, Row} from '@enact/ui/Layout'; +import ri from '@enact/ui/resolution'; +import Toggleable from '@enact/ui/Toggleable'; +import PropTypes from 'prop-types'; + +const FieldRow = kind({ + name: 'FieldRow', + propTypes: { + label: PropTypes.string + }, + render: ({label, ...rest}) => ( + + + {label} + + + + ) +}); + +const Details = kind({ + name: 'Details', + + propTypes: { + changeOrientation: PropTypes.func, + DebugButton: PropTypes.object, + orientation: PropTypes.bool, + + /** + * A title string appear on header + * @type {String} + */ + title: PropTypes.string, + titleBelow: PropTypes.string + }, + + render: ({DebugButton, changeOrientation, orientation, title, titleBelow, ...rest}) => ( + +
    + + {DebugButton} + + +
    + + + The alumni cast of a space opera television series have to play their roles as the real thing when an alien race needs their help. However, they also have to defend both Earth and the alien race from a reptilian warlord. + + + + + + + + By Grabthar's hammer, by the sons of Warvan, you shall be avenged. + + Dean Parisot + David Howard (story), David Howard (screenplay) + Tim Allen, Sigourney Weaver, Alan Rickman + + + + + +
    + ) +}); + +export default Toggleable({prop: 'orientation', toggle: 'changeOrientation'}, Details); + +// Text content lovingly borrowed from IMDB: +// http://www.imdb.com/title/tt0177789/ diff --git a/limestone/pattern-layout/src/views/FavoritesList.js b/limestone/pattern-layout/src/views/FavoritesList.js new file mode 100644 index 000000000..b1c85fea3 --- /dev/null +++ b/limestone/pattern-layout/src/views/FavoritesList.js @@ -0,0 +1,86 @@ +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import Heading from '@enact/limestone/Heading'; +import Item from '@enact/limestone/Item'; +import {Header, Panel} from '@enact/limestone/Panels'; +import RadioItem from '@enact/limestone/RadioItem'; +import VirtualList from '@enact/limestone/VirtualList'; +import {SpotlightContainerDecorator} from '@enact/spotlight/SpotlightContainerDecorator'; +import {Cell, Column, Row} from '@enact/ui/Layout'; +import ri from '@enact/ui/resolution'; +import PropTypes from 'prop-types'; + +const SpottableContainer = SpotlightContainerDecorator({enterTo: 'last-focused'}, 'div'); + +const items = Array(80).fill().map((_, i) => 'Item ' + (i + 1)); + +// eslint-disable-next-line enact/display-name, enact/prop-types +const renderItem = () => ({index, ...rest}) => ( + + {items[index]} + +); + +const ItemPanel = kind({ + name: 'ItemPanel', + + propTypes: { + DebugButton: PropTypes.object, + + /** + * A title string appear on header + * @type {String} + */ + title: PropTypes.string, + titleBelow: PropTypes.string + }, + + computed: { + itemRenderer: renderItem + }, + + render: ({title, titleBelow, itemRenderer, DebugButton, ...rest}) => ( + +
    + + {DebugButton} + +
    + + + Photo Items + Video Items + Audio Items + + + + + All Items + + + + + + + + + + + + + + Selected Items + Item 1 + Item 2 + + +
    + ) +}); + +export default ItemPanel; diff --git a/limestone/pattern-layout/src/views/MainPanel.js b/limestone/pattern-layout/src/views/MainPanel.js new file mode 100644 index 000000000..53bb99143 --- /dev/null +++ b/limestone/pattern-layout/src/views/MainPanel.js @@ -0,0 +1,93 @@ +import kind from '@enact/core/kind'; +import ImageItem from '@enact/limestone/ImageItem'; +import {Header, Panel} from '@enact/limestone/Panels'; +import {VirtualGridList} from '@enact/limestone/VirtualList'; +import ri from '@enact/ui/resolution'; +import PropTypes from 'prop-types'; + +const GridItem = kind({ + name: 'GridItem', + propTypes: { + index: PropTypes.number, + items: PropTypes.array, + onSelect: PropTypes.func + }, + handlers: { + onSelect: (ev, {index, onSelect}) => onSelect({index}) + }, + render: ({index, items, onSelect, ...rest}) => { + if (items && items[index]) { + return ( + + {items[index].title} + + ); + } + } +}); + +// eslint-disable-next-line enact/display-name, enact/prop-types +const renderItem = ({items, onChangePanel}) => ({index, ...rest}) => { + if (items && items[index]) { + return ( + + ); + } +}; + +const MainPanel = kind({ + name: 'MainPanel', + + propTypes: { + /** + * A collection of all of the items to be rendered by this VirtualGridList + * @type {Array} + */ + items: PropTypes.array, + + /** + * A function to run when the panel changes + * @type {Function} + */ + onChangePanel: PropTypes.func + }, + + computed: { + itemRenderer: renderItem + }, + + render: ({items, itemRenderer, ...rest}) => { + delete rest.onChangePanel; + return ( + +
    + Example Layouts + Choose a layout +
    + + +
    + ); + } +}); + +export default MainPanel; diff --git a/limestone/pattern-layout/src/views/README.md b/limestone/pattern-layout/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/pattern-layout/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/pattern-layout/webos-meta/appinfo.json b/limestone/pattern-layout/webos-meta/appinfo.json new file mode 100644 index 000000000..bbfa6fcc9 --- /dev/null +++ b/limestone/pattern-layout/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "pattern-layout", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Layout Pattern", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-layout/webos-meta/icon-large.png b/limestone/pattern-layout/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-layout/webos-meta/icon-mini.png b/limestone/pattern-layout/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/pattern-locale-switching/.eslintignore b/limestone/pattern-locale-switching/.eslintignore new file mode 100644 index 000000000..7de9f5fde --- /dev/null +++ b/limestone/pattern-locale-switching/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-locale-switching/.gitignore b/limestone/pattern-locale-switching/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/pattern-locale-switching/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-locale-switching/LICENSE b/limestone/pattern-locale-switching/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-locale-switching/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-locale-switching/README.md b/limestone/pattern-locale-switching/README.md new file mode 100644 index 000000000..e6970674c --- /dev/null +++ b/limestone/pattern-locale-switching/README.md @@ -0,0 +1,7 @@ +# Locale Switching Sample + +This sample is a very simple sample with 3 components (one `Input` and two +`Button`s). This sample will demonstrate how to update the locale of an app +using either `context` or `redux`. + +> NOTE: An app should adopt one of these two approaches, not both. diff --git a/limestone/pattern-locale-switching/package.json b/limestone/pattern-locale-switching/package.json new file mode 100644 index 000000000..5fb978bc4 --- /dev/null +++ b/limestone/pattern-locale-switching/package.json @@ -0,0 +1,49 @@ +{ + "name": "pattern-locale-switching", + "version": "1.0.0", + "description": "An Enact application demonstrating Locale switching.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Locale Switching Pattern", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "@enact/webos": "^5.0.0-alpha.4", + "@reduxjs/toolkit": "^2.3.0", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-redux": "^9.1.2", + "redux": "^5.0.1" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-locale-switching/resources/ilibmanifest.json b/limestone/pattern-locale-switching/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-locale-switching/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-locale-switching/src/App/App.js b/limestone/pattern-locale-switching/src/App/App.js new file mode 100644 index 000000000..8b46ec19e --- /dev/null +++ b/limestone/pattern-locale-switching/src/App/App.js @@ -0,0 +1,36 @@ +import kind from '@enact/core/kind'; +import I18nDecorator from '@enact/i18n/I18nDecorator'; +import {Panels} from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; +import {connect} from 'react-redux'; + +import MainPanel from '../views/MainPanel'; + +import css from './App.module.less'; + +const Sample = kind({ + name: 'App', + + styles: { + css, + className: 'app' + }, + + render: (props) => { + return ( +
    + + + +
    + ); + } +}); + +const mapStateToProps = ({locale}) => ({locale}); + +const AppBase = connect(mapStateToProps, {})(I18nDecorator(Sample)); +const App = connect(mapStateToProps, {})(ThemeDecorator(Sample)); + +export default App; +export {App, AppBase}; diff --git a/limestone/pattern-locale-switching/src/App/App.module.less b/limestone/pattern-locale-switching/src/App/App.module.less new file mode 100644 index 000000000..23782defd --- /dev/null +++ b/limestone/pattern-locale-switching/src/App/App.module.less @@ -0,0 +1,3 @@ +.app { + // styles can be put here +} diff --git a/limestone/pattern-locale-switching/src/App/package.json b/limestone/pattern-locale-switching/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-locale-switching/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-locale-switching/src/components/LocaleSwitch/LocaleSwitch.js b/limestone/pattern-locale-switching/src/components/LocaleSwitch/LocaleSwitch.js new file mode 100644 index 000000000..9c56690eb --- /dev/null +++ b/limestone/pattern-locale-switching/src/components/LocaleSwitch/LocaleSwitch.js @@ -0,0 +1,38 @@ +import {I18nContextDecorator} from '@enact/i18n/I18nDecorator'; +import Button from '@enact/limestone/Button'; +import Input from '@enact/limestone/Input'; +import PropTypes from 'prop-types'; +import {useCallback, useState} from 'react'; +import {useDispatch} from 'react-redux'; + +import {updateLocale as updateLocaleActions} from '../../store'; + +const LocaleSwitchBase = ({rtl, updateLocale}) => { + const dispatch = useDispatch(); + const [value, setValue] = useState(''); + + const handleChange = useCallback((ev) => setValue(ev.value), []); + const updateContext = useCallback(() => updateLocale(value), [updateLocale, value]); + const updateRedux = useCallback(() => dispatch(updateLocaleActions(value)), [dispatch, value]); + + return ( +
    +

    This locale {rtl ? 'is' : 'isn\'t'} RTL

    + + + +
    + ); +}; + +LocaleSwitchBase.propTypes = { + rtl: PropTypes.bool, + updateLocale: PropTypes.func +}; + +const LocaleSwitch = I18nContextDecorator( + {updateLocaleProp: 'updateLocale', 'rtlProp': 'rtl'}, + LocaleSwitchBase +); + +export default LocaleSwitch; diff --git a/limestone/pattern-locale-switching/src/components/LocaleSwitch/package.json b/limestone/pattern-locale-switching/src/components/LocaleSwitch/package.json new file mode 100644 index 000000000..137c6e255 --- /dev/null +++ b/limestone/pattern-locale-switching/src/components/LocaleSwitch/package.json @@ -0,0 +1,3 @@ +{ + "main": "LocaleSwitch.js" +} diff --git a/limestone/pattern-locale-switching/src/components/README.md b/limestone/pattern-locale-switching/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/pattern-locale-switching/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/pattern-locale-switching/src/index.js b/limestone/pattern-locale-switching/src/index.js new file mode 100644 index 000000000..164498fb9 --- /dev/null +++ b/limestone/pattern-locale-switching/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './main'; + +let appElement = ; + +// In a browser environment, render instead of exporting +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-locale-switching/src/main.js b/limestone/pattern-locale-switching/src/main.js new file mode 100644 index 000000000..0a6be63f5 --- /dev/null +++ b/limestone/pattern-locale-switching/src/main.js @@ -0,0 +1,19 @@ +import {Provider} from 'react-redux'; + +import App, {AppBase} from './App'; +import store from './store'; + +let appElementBase = () => ( + + + +); + +let appElement = () => ( + + + +); + +export default appElement; +export {appElement, appElementBase}; diff --git a/limestone/pattern-locale-switching/src/store/index.js b/limestone/pattern-locale-switching/src/store/index.js new file mode 100644 index 000000000..1360cbaa3 --- /dev/null +++ b/limestone/pattern-locale-switching/src/store/index.js @@ -0,0 +1,20 @@ +import {configureStore, createSlice} from '@reduxjs/toolkit'; + +const localeSlice = createSlice({ + name: 'localeReducer', + initialState: { + locale : 'en-US' + }, + reducers: { + updateLocale: (state, action) => { + state.locale = action.payload; + } + } +}); + +const store = configureStore({ + reducer: localeSlice.reducer +}); + +export const {updateLocale} = localeSlice.actions; +export default store; diff --git a/limestone/pattern-locale-switching/src/views/MainPanel.js b/limestone/pattern-locale-switching/src/views/MainPanel.js new file mode 100644 index 000000000..50a36f970 --- /dev/null +++ b/limestone/pattern-locale-switching/src/views/MainPanel.js @@ -0,0 +1,17 @@ +import kind from '@enact/core/kind'; +import {Header, Panel} from '@enact/limestone/Panels'; + +import LocaleSwitch from '../components/LocaleSwitch'; + +const MainPanel = kind({ + name: 'MainPanel', + + render: (props) => ( + +
    + + + ) +}); + +export default MainPanel; diff --git a/limestone/pattern-locale-switching/src/views/README.md b/limestone/pattern-locale-switching/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/pattern-locale-switching/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/pattern-locale-switching/webos-meta/appinfo.json b/limestone/pattern-locale-switching/webos-meta/appinfo.json new file mode 100644 index 000000000..717f6e377 --- /dev/null +++ b/limestone/pattern-locale-switching/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.pattern-locale-switching", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Locale Switching Pattern", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-locale-switching/webos-meta/icon-large.png b/limestone/pattern-locale-switching/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-locale-switching/webos-meta/icon-mini.png b/limestone/pattern-locale-switching/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/pattern-ls2request-camera/.eslintignore b/limestone/pattern-ls2request-camera/.eslintignore new file mode 100644 index 000000000..7de9f5fde --- /dev/null +++ b/limestone/pattern-ls2request-camera/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-ls2request-camera/.gitignore b/limestone/pattern-ls2request-camera/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/pattern-ls2request-camera/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-ls2request-camera/LICENSE b/limestone/pattern-ls2request-camera/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-ls2request-camera/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-ls2request-camera/README.md b/limestone/pattern-ls2request-camera/README.md new file mode 100644 index 000000000..ac0ea2c36 --- /dev/null +++ b/limestone/pattern-ls2request-camera/README.md @@ -0,0 +1,32 @@ +## LS2Request Camera pattern + +A sample Enact application that shows off how to use camera API by LS2Request + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can access it from a webOS device. To create an installable application, use `npm run pack` and then use the packaging tools to package the **dist** folder. + +#### Enact Components Used +- `limestone/Button` +- `limestone/Panels/Header` +- `limestone/Panels/Panel` +- `webos/LS2Request` + +Most webOS apps require interaction with LS2Request. In this sample, we show how to use LS2Request with Redux. + +To use camera API in your web app, you need to set permissions for methods. +First, you need to identify the ACG information for the camera methods. +Then specify the method's ACG information in the `appinfo.json` file. + +appinfo.json +```json +{ + ... + "requiredPermissions": ["camera.query", "camera.operation"] + ... +} +``` + +https://www.webosose.org/docs/guides/development/web-apps/using-ls2-api-in-web-apps/#identify-the-acg-group-of-the-methods + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/pattern-ls2request-camera/package.json b/limestone/pattern-ls2request-camera/package.json new file mode 100644 index 000000000..0403c0aa0 --- /dev/null +++ b/limestone/pattern-ls2request-camera/package.json @@ -0,0 +1,49 @@ +{ + "name": "pattern-ls2request-camera", + "version": "1.0.0", + "description": "An Enact application demonstrating camera API using ls2request.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "LS2Request Camera Pattern", + "isomorphic": true, + "ri": { + "baseSize": 24 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "@enact/webos": "^5.0.0-alpha.4", + "@reduxjs/toolkit": "^2.3.0", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-redux": "^9.1.2", + "redux": "^5.0.1" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-ls2request-camera/resources/ilibmanifest.json b/limestone/pattern-ls2request-camera/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-ls2request-camera/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-ls2request-camera/src/App/App.js b/limestone/pattern-ls2request-camera/src/App/App.js new file mode 100644 index 000000000..ea6326e3d --- /dev/null +++ b/limestone/pattern-ls2request-camera/src/App/App.js @@ -0,0 +1,14 @@ +import {Panels} from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; + +import MainPanel from '../views/MainPanel'; + +const App = (props) => { + return ( + + + + ); +}; + +export default ThemeDecorator(App); diff --git a/limestone/pattern-ls2request-camera/src/App/package.json b/limestone/pattern-ls2request-camera/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-ls2request-camera/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-ls2request-camera/src/components/CameraView.js b/limestone/pattern-ls2request-camera/src/components/CameraView.js new file mode 100644 index 000000000..c6ec312c6 --- /dev/null +++ b/limestone/pattern-ls2request-camera/src/components/CameraView.js @@ -0,0 +1,86 @@ +import Button from '@enact/limestone/Button'; +import Heading from '@enact/limestone/Heading'; +import Item from '@enact/limestone/Item'; +import VirtualList from '@enact/limestone/VirtualList'; +import {Column} from '@enact/ui/Layout'; +import ri from '@enact/ui/resolution'; +import {useEffect, useRef} from 'react'; +import {useDispatch, useSelector} from 'react-redux'; + +import {closeCamera, getCameraIds, startCamera} from '../store'; + +const CameraView = () => { + const videoRef = useRef(null); + const dispatch = useDispatch(); + const cameraIds = useSelector((store) => store.cameraIds); + const cameraStatus = useSelector((store) => store.cameraStatus); + + let cameraOption; + + useEffect(() => { + if (typeof window === 'object' && typeof (window.webOSSystem ?? window.PalmSystem) === 'object') { + dispatch(getCameraIds({})); + } + }, []); // eslint-disable-line react-hooks/exhaustive-deps + + useEffect(() => { + if (videoRef.current) { + videoRef.current.load(); + } + }, [cameraStatus]); + + const checkSystem = () => { + if (typeof window !== 'object' || typeof (window.webOSSystem ?? window.PalmSystem) !== 'object') { + return
    This test will only function correctly on webOS systems!
    ; + } + }; + + if (typeof window !== 'object' || typeof (window.webOSSystem ?? window.PalmSystem) !== 'object') { + return
    This test will only function correctly on webOS systems!
    ; + } + + cameraOption = encodeURIComponent(JSON.stringify({ + mediaTransportType: 'CAMERA', + option: cameraStatus + })); + + return ( +
    + {checkSystem()} + Camera List + ( + { + dispatch(startCamera(cameraIds[index].id)); + }} + > + {cameraIds[index].id} + + )} + itemSize={ri.scale(144)} + /> + + + + + + +
    + ); +}; + +export default CameraView; diff --git a/limestone/pattern-ls2request-camera/src/index.js b/limestone/pattern-ls2request-camera/src/index.js new file mode 100644 index 000000000..164498fb9 --- /dev/null +++ b/limestone/pattern-ls2request-camera/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './main'; + +let appElement = ; + +// In a browser environment, render instead of exporting +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-ls2request-camera/src/main.js b/limestone/pattern-ls2request-camera/src/main.js new file mode 100644 index 000000000..ad3de6349 --- /dev/null +++ b/limestone/pattern-ls2request-camera/src/main.js @@ -0,0 +1,12 @@ +import {Provider} from 'react-redux'; + +import App from './App'; +import store from './store'; + +let appElement = () => ( + + + +); + +export default appElement; diff --git a/limestone/pattern-ls2request-camera/src/store/package.json b/limestone/pattern-ls2request-camera/src/store/package.json new file mode 100644 index 000000000..3f33f7033 --- /dev/null +++ b/limestone/pattern-ls2request-camera/src/store/package.json @@ -0,0 +1,3 @@ +{ + "main": "store.js" +} diff --git a/limestone/pattern-ls2request-camera/src/store/store.js b/limestone/pattern-ls2request-camera/src/store/store.js new file mode 100644 index 000000000..25d3cd1f5 --- /dev/null +++ b/limestone/pattern-ls2request-camera/src/store/store.js @@ -0,0 +1,164 @@ +import LS2Request from '@enact/webos/LS2Request'; +import {configureStore, createSlice} from '@reduxjs/toolkit'; + +const rootSlice = createSlice({ + name: 'systemReducer', + initialState: { + cameraIds: [], + cameraStatus: {} + }, + reducers: { + getCameraList: (state, action) => { + return Object.assign({}, state, {cameraIds: action.payload.deviceList}); + }, + updateCameraStatus: (state, action) => { + return Object.assign({}, state, {cameraStatus: action.payload.status}); + } + } +}); + +export const {getCameraList, updateCameraStatus} = rootSlice.actions; + +const open = (id) => { + return new Promise((resolve) => { + new LS2Request().send( + { + service: 'luna://com.webos.service.camera2', + method: 'open', + parameters: {id}, + onSuccess: (res) => { + resolve(res.handle); + } + } + ); + }); +}; + +const setFormat = (handle) => { + return new Promise((resolve) => { + new LS2Request().send( + { + service: 'luna://com.webos.service.camera2', + method: 'setFormat', + parameters: { + handle, + params: { + width: 1280, + height: 720, + format: 'JPEG', + fps: 10 + } + }, + onSuccess: () => { + resolve(handle); + } + } + ); + }); +}; + +const startPreview = (handle) => { + return new Promise((resolve) => { + new LS2Request().send( + { + service: 'luna://com.webos.service.camera2', + method: 'startPreview', + parameters: { + handle, + params: { + type: 'sharedmemory', + source: '0' + } + }, + onSuccess: (res) => { + resolve({ + handle, + memsrc: res.key + '' + }); + } + } + ); + }); +}; + +export const getCameraIds = () => dispatch => { + return new LS2Request().send({ + service:'luna://com.webos.service.camera2/', + method: 'getCameraList', + parameters: {}, + onSuccess: (res) => { + dispatch(getCameraList(res)); + } + // onFailure: (res) => console.error(res) + }); +}; + +export const startCamera = (id) => dispatch => { + return new Promise(() => { + open(id) + .then((handle) => { + return setFormat(handle); + }) + .then((handle) => { + return startPreview(handle); + }) + .then((res) => { + // console.log('Camera Started', res); + dispatch(updateCameraStatus({ + id: id, + width: 1280, + height: 720, + frameRate: 10, + format: 'JPEG', + streamType: 'JPEG', + memType: 'shmem', + memSrc: res.memsrc, + handle: res.handle + })); + }); + }); +}; + +const stopPreview = (handle) => { + return new Promise((resolve) => { + new LS2Request().send( + { + service: 'luna://com.webos.service.camera2', + method: 'stopPreview', + parameters: { + handle + }, + onSuccess: () => { + resolve(); + } + } + ); + }); +}; + +export const closeCamera = (handle) => dispatch => { + return new Promise(() => { + stopPreview(handle) + .then(() => { + new LS2Request().send( + { + service: 'luna://com.webos.service.camera2', + method: 'close', + parameters: { + handle + }, + onSuccess: () => { + // console.log('Camera Closed', res); + dispatch(updateCameraStatus({})); + } + } + ); + }); + }); +}; + +const store = configureStore({ + reducer: rootSlice.reducer +}); + +export default store; diff --git a/limestone/pattern-ls2request-camera/src/views/MainPanel.js b/limestone/pattern-ls2request-camera/src/views/MainPanel.js new file mode 100644 index 000000000..e4759d9ee --- /dev/null +++ b/limestone/pattern-ls2request-camera/src/views/MainPanel.js @@ -0,0 +1,17 @@ +import kind from '@enact/core/kind'; +import {Header, Panel} from '@enact/limestone/Panels'; + +import CameraView from '../components/CameraView'; + +const MainPanel = kind({ + name: 'MainPanel', + + render: (props) => ( + +
    + + + ) +}); + +export default MainPanel; diff --git a/limestone/pattern-ls2request-camera/webos-meta/appinfo.json b/limestone/pattern-ls2request-camera/webos-meta/appinfo.json new file mode 100644 index 000000000..2a5395a71 --- /dev/null +++ b/limestone/pattern-ls2request-camera/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.pattern-ls2request", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "LS2Request Pattern", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-ls2request-camera/webos-meta/icon-large.png b/limestone/pattern-ls2request-camera/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-ls2request-camera/webos-meta/icon-mini.png b/limestone/pattern-ls2request-camera/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/pattern-react18-new/.gitignore b/limestone/pattern-react18-new/.gitignore new file mode 100644 index 000000000..75876f20e --- /dev/null +++ b/limestone/pattern-react18-new/.gitignore @@ -0,0 +1,19 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# Editor +.idea +.vscode + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-react18-new/package.json b/limestone/pattern-react18-new/package.json new file mode 100644 index 000000000..7c92f3463 --- /dev/null +++ b/limestone/pattern-react18-new/package.json @@ -0,0 +1,47 @@ +{ + "name": "react-18", + "version": "1.0.0", + "description": "A sample for showcasing react-18's features in an Enact app.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "UNLICENSED", + "private": true, + "repository": "", + "enact": { + "theme": "limestone" + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "eslintIgnore": [ + "node_modules/*", + "build/*", + "dist/*" + ], + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "classnames": "^2.5.1", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-react18-new/resources/ilibmanifest.json b/limestone/pattern-react18-new/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-react18-new/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-react18-new/src/App/App.js b/limestone/pattern-react18-new/src/App/App.js new file mode 100644 index 000000000..4a2cc62bf --- /dev/null +++ b/limestone/pattern-react18-new/src/App/App.js @@ -0,0 +1,32 @@ +import {Header} from '@enact/limestone/Panels'; +import TabLayout, {Tab} from '@enact/limestone/TabLayout'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; +import classnames from 'classnames'; + +import Batching from '../views/Batching/Batching'; +import Suspense from '../views/Suspense/Suspense'; +import UseTransition from '../views/UseTransition/UseTransition'; + +import css from './App.module.less'; + +const App = (props) => { + return ( +
    +
    + + + + + + + + + + + +
    + ); +}; + +export default ThemeDecorator(App); +export {App}; diff --git a/limestone/pattern-react18-new/src/App/App.module.less b/limestone/pattern-react18-new/src/App/App.module.less new file mode 100644 index 000000000..e0f64a334 --- /dev/null +++ b/limestone/pattern-react18-new/src/App/App.module.less @@ -0,0 +1,8 @@ +.app { + display: flex; + flex-direction: column; + + .tabLayout { + overflow: hidden; + } +} diff --git a/limestone/pattern-react18-new/src/App/package.json b/limestone/pattern-react18-new/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-react18-new/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-react18-new/src/index.js b/limestone/pattern-react18-new/src/index.js new file mode 100644 index 000000000..eb163ed13 --- /dev/null +++ b/limestone/pattern-react18-new/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +const appElement = (); + +// In a browser environment, render instead of exporting +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-react18-new/src/views/Batching/BatchedAssign.js b/limestone/pattern-react18-new/src/views/Batching/BatchedAssign.js new file mode 100644 index 000000000..7fd39ba63 --- /dev/null +++ b/limestone/pattern-react18-new/src/views/Batching/BatchedAssign.js @@ -0,0 +1,55 @@ +/* eslint-disable react-hooks/rules-of-hooks, react/jsx-no-bind */ + +import kind from '@enact/core/kind'; +import BodyText from '@enact/limestone/BodyText'; +import Button from '@enact/limestone/Button'; +import {Column} from '@enact/ui/Layout'; +import {useEffect, useState} from 'react'; + +const BatchedAssign = kind({ + name: 'BatchedAssign', + + functional: true, + + render: () => { + const [renders, setRenders] = useState(-1); + const [value, setValue] = useState(0); + + useEffect(() => { + setRenders(r => r + 1); + }, [value]); + + const fakeApiCall = async () => { + setTimeout(() => {}, 300); + }; + + const assignFunctionBatched = () => { + fakeApiCall().then(() => { + if (value === 0) { + for (let i = 0; i < 1000; ++i) { + setValue(i + 1); + } + } else { + for (let i = 1000; i >= 0; --i) { + setValue(i); + } + } + }); + }; + + return ( +
    + + If you click `Batched update!` the value will go from {value} to {value === 0 ? 1000 : 0}! + The current value is {value}! + There have been {renders} re-renders! + + + +
    + ); + } +}); + +export default BatchedAssign; + diff --git a/limestone/pattern-react18-new/src/views/Batching/Batching.js b/limestone/pattern-react18-new/src/views/Batching/Batching.js new file mode 100644 index 000000000..a2f10b041 --- /dev/null +++ b/limestone/pattern-react18-new/src/views/Batching/Batching.js @@ -0,0 +1,35 @@ +import kind from '@enact/core/kind'; +import BodyText from '@enact/limestone/BodyText'; +import {Panel} from '@enact/limestone/Panels'; +import {Cell, Row} from '@enact/ui/Layout'; + +import BatchedAssign from './BatchedAssign'; +import NotBatchedAssign from './NotBatchedAssign'; + +const Batching = kind({ + name: 'Batching', + + render: (props) => ( + + + + + Batching is when React groups multiple state updates into a single re-render for better performance. + + + In this example we have a fake api call and in it`s .then() method a For Loop that will call a state + updating function a 1000 times incrementing or decrementing the value by 1 each time. + + + + + + + + + + + ) +}); + +export default Batching; diff --git a/limestone/pattern-react18-new/src/views/Batching/NotBatchedAssign.js b/limestone/pattern-react18-new/src/views/Batching/NotBatchedAssign.js new file mode 100644 index 000000000..1107193a0 --- /dev/null +++ b/limestone/pattern-react18-new/src/views/Batching/NotBatchedAssign.js @@ -0,0 +1,60 @@ +/* eslint-disable react-hooks/rules-of-hooks, react/jsx-no-bind */ + +import kind from '@enact/core/kind'; +import BodyText from '@enact/limestone/BodyText'; +import Button from '@enact/limestone/Button'; +import {Column} from '@enact/ui/Layout'; +import {useEffect, useState} from 'react'; +import {flushSync} from 'react-dom'; + +const NotBatchedAssign = kind({ + name: 'NotBatchedAssign', + + functional: true, + + render: () => { + const [renders, setRenders] = useState(-1); + const [value, setValue] = useState(0); + + useEffect(() => { + setRenders(r => r + 1); + }, [value]); + + const fakeApiCall = async () => { + setTimeout(() => {}, 300); + }; + + const assignFunctionNotBatched = () => { + fakeApiCall().then(() => { + if (value === 0) { + for (let i = 0; i < 1000; ++i) { + flushSync(() => { + setValue(i + 1); + }); + } + } else { + for (let i = 1000; i >= 0; --i) { + flushSync(() => { + setValue(i); + }); + } + } + }); + }; + + return ( +
    + + If you click `Not Batched update!` the value will go from {value} to {value === 0 ? 1000 : 0}! + The current value is {value}! + There have been {renders} re-renders! + + + +
    + ); + } +}); + +export default NotBatchedAssign; + diff --git a/limestone/pattern-react18-new/src/views/Batching/package.json b/limestone/pattern-react18-new/src/views/Batching/package.json new file mode 100644 index 000000000..979150888 --- /dev/null +++ b/limestone/pattern-react18-new/src/views/Batching/package.json @@ -0,0 +1,3 @@ +{ + "main": "Batching.js" +} diff --git a/limestone/pattern-react18-new/src/views/Suspense/NoSuspense.js b/limestone/pattern-react18-new/src/views/Suspense/NoSuspense.js new file mode 100644 index 000000000..b2bff09d2 --- /dev/null +++ b/limestone/pattern-react18-new/src/views/Suspense/NoSuspense.js @@ -0,0 +1,24 @@ +import {useEffect, useState} from 'react'; + +import SamplePage from './SamplePage'; + +const NoSuspense = () => { + const [loading, setLoading] = useState(true); + + useEffect(() => { + setTimeout(() => setLoading(false), 3000); + }, []); + + return ( +
    + { + !loading && +
    + +
    + } +
    + ); +}; + +export default NoSuspense; diff --git a/limestone/pattern-react18-new/src/views/Suspense/SamplePage.js b/limestone/pattern-react18-new/src/views/Suspense/SamplePage.js new file mode 100644 index 000000000..6f5754db4 --- /dev/null +++ b/limestone/pattern-react18-new/src/views/Suspense/SamplePage.js @@ -0,0 +1,54 @@ +import kind from '@enact/core/kind'; +import {ImageItem} from '@enact/limestone/ImageItem'; +import {VirtualGridList} from '@enact/limestone/VirtualList'; +import ri from '@enact/ui/resolution'; +import PropTypes from 'prop-types'; + +const items = []; +const renderItem = ({index, ...rest}) => { + const {caption, src} = items[index]; + + return ( + + {caption} + + ); +}; + +renderItem.propTypes = { + index: PropTypes.number +}; + +for (let i = 0; i < 6; i++) { + const + count = ('0' + i).slice(-2), + caption = `Item ${count} caption`, + color = Math.floor((Math.random() * (0x1000000 - 0x101010)) + 0x101010).toString(16), + src = { + 'hd': `https://placehold.co/200x200/${color}/ffffff/png?text=Image+${i}`, + 'fhd': `https://placehold.co/300x300/${color}/ffffff/png?text=Image+${i}`, + 'uhd': `https://placehold.co/600x600/${color}/ffffff/png?text=Image+${i}` + }; + + items.push({caption, src}); +} + +const SamplePage = kind({ + name: 'SamplePage', + + render: () => ( + + ) +}); + +export default SamplePage; diff --git a/limestone/pattern-react18-new/src/views/Suspense/SkeletonPage.js b/limestone/pattern-react18-new/src/views/Suspense/SkeletonPage.js new file mode 100644 index 000000000..3fe64129f --- /dev/null +++ b/limestone/pattern-react18-new/src/views/Suspense/SkeletonPage.js @@ -0,0 +1,40 @@ +import kind from '@enact/core/kind'; +import {ImageItem} from '@enact/limestone/ImageItem'; +import Spinner from '@enact/limestone/Spinner'; +import {VirtualGridList} from '@enact/limestone/VirtualList'; +import ri from '@enact/ui/resolution'; + +import photo from './placeholder.jpg'; + +const renderItem = () => { + return ( + <> + + Loading... + + + + ); +}; + +const SkeletonPage = kind({ + name: 'SkeletonPage', + + render: () => ( + + ) +}); + +export default SkeletonPage; diff --git a/limestone/pattern-react18-new/src/views/Suspense/Suspense.js b/limestone/pattern-react18-new/src/views/Suspense/Suspense.js new file mode 100644 index 000000000..1f252f7bc --- /dev/null +++ b/limestone/pattern-react18-new/src/views/Suspense/Suspense.js @@ -0,0 +1,49 @@ +import Heading from '@enact/limestone/Heading'; +import TabLayout, {Tab} from '@enact/limestone/TabLayout'; +import {lazy, Suspense, useCallback, useState} from 'react'; + +import NoSuspense from './NoSuspense'; +import SkeletonPage from './SkeletonPage'; + +// Load the "SamplePage" component after 3s +const getSamplePage = () => { + return lazy(() => { + return new Promise((resolve) => { + setTimeout(() => { + resolve(import('./SamplePage')); + }, 3000); + }); + }); +}; + +let SamplePage = getSamplePage(); + +const SuspensePage = () => { + const [tabIndex, setTabIndex] = useState(0); + + const lazyReload = useCallback(({index}) => { + SamplePage = getSamplePage(); + setTabIndex(index); + }, []); + + return ( + + + + Suspense offers a fallback UI for better user experience. + + }> + + + + + + Page is empty until all the data is available. Please wait 3s. + + + + + ); +}; + +export default SuspensePage; diff --git a/limestone/pattern-react18-new/src/views/Suspense/package.json b/limestone/pattern-react18-new/src/views/Suspense/package.json new file mode 100644 index 000000000..4216a8370 --- /dev/null +++ b/limestone/pattern-react18-new/src/views/Suspense/package.json @@ -0,0 +1,3 @@ +{ + "main": "Suspense.js" +} diff --git a/limestone/pattern-react18-new/src/views/Suspense/placeholder.jpg b/limestone/pattern-react18-new/src/views/Suspense/placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4d00d16d0fd4301721a9cfb8f3b1c6e8d7159df1 GIT binary patch literal 1397 zcmeAS@N?(olHy`uVBq!ia0y~yU@Bo?V3gos1BzVTo?Q&27>k44ofy`glX(f`u%tWs zIx;Y9?C1WI$O`0h7I;Jg74aPgVaDV6D^eI3Sh+l1978JN-d { + fetchData().then((data) => { + setTime(data); + setIsLoading(false); + }); + }, []); + + return isLoading ? ( + + ) : ( + + Loading of content took {time.toFixed()}ms. +
    + {CONTENT[page]} +
    + ); +} + +Content.propTypes = { + page: PropTypes.string +}; + +function ContentUseTransition ({page, resource}) { + const time = resource.delay.read(); + return ( + time && ( +
    +
    + Loading of content took {time.toFixed()}ms. +
    + {CONTENT[page]} +
    +
    + ) + ); +} + +export default Content; +export {Content, ContentUseTransition}; diff --git a/limestone/pattern-react18-new/src/views/UseTransition/FakeApi.js b/limestone/pattern-react18-new/src/views/UseTransition/FakeApi.js new file mode 100644 index 000000000..ba03b686c --- /dev/null +++ b/limestone/pattern-react18-new/src/views/UseTransition/FakeApi.js @@ -0,0 +1,43 @@ +const createDelay = () => { + return new Promise((resolve) => { + const delay = Math.random() * 500 + 200; + setTimeout(() => resolve(delay), delay); + }); +}; + +const wrapPromise = (promise) => { + let status = 'pending'; + let result; + let suspender = promise.then( + (r) => { + status = 'success'; + result = r; + }, + (e) => { + status = 'error'; + result = e; + } + ); + return { + read () { + if (status === 'pending') { + throw suspender; + } else if (status === 'error') { + throw result; + } else if (status === 'success') { + return result; + } + } + }; +}; + +export const fetchData = () => { + return createDelay(); +}; + +export const fetchDataUseTransition = () => { + let promise = createDelay(); + return { + delay: wrapPromise(promise) + }; +}; diff --git a/limestone/pattern-react18-new/src/views/UseTransition/UseTransition.js b/limestone/pattern-react18-new/src/views/UseTransition/UseTransition.js new file mode 100644 index 000000000..2ebbb4833 --- /dev/null +++ b/limestone/pattern-react18-new/src/views/UseTransition/UseTransition.js @@ -0,0 +1,93 @@ +/* eslint-disable react/jsx-no-bind, react/no-unescaped-entities */ + +import BodyText from '@enact/limestone/BodyText'; +import Button from '@enact/limestone/Button'; +import Scroller from '@enact/limestone/Scroller'; +import Spinner from '@enact/limestone/Spinner'; +import Group from '@enact/ui/Group'; +import {Suspense, useState, useTransition} from 'react'; + +import Content, {ContentUseTransition} from './Content'; +import {fetchDataUseTransition} from './FakeApi'; + +import css from './UseTransition.module.less'; + +const initialResource = fetchDataUseTransition(); + +const UseTransition = () => { + const [tab, setTab] = useState(0); + const [tabUseTransition, setTabUseTransition] = useState(0); + const [resource, setResource] = useState(initialResource); + const [isPending, startTransition] = useTransition(); + + function handleClick (event) { + setTab(event.selected); + } + + function handleClickUseTransition (event) { + startTransition(() => { + setTabUseTransition(event.selected); + setResource(fetchDataUseTransition()); + }); + } + + return ( + +
    + + With React18's 'useTransition' hook, the previous state of the UI can be held until the data is ready. The fetching of the new data is wrapped inside 'startTransition' while the 'isPending' data tells if the content is currently being loaded or not. This allows the possibility to show a loading indicator. Its 'timeoutMs' property specifies how long we’re willing to wait for the transition to finish. + +
    + handleClickUseTransition(event)} + select={'radio'} + selectedProp="selected" + > + {['One', 'Two', 'Three']} + +
    +
    + }> + {tabUseTransition === 0 && } + {tabUseTransition === 1 && } + {tabUseTransition === 2 && } + +
    +
    + {isPending ? + : + null} +
    +
    +
    + + Until React 17, when needing to fetch data before showing some UI that depends on that data, a loading state would have had to manually be set in its place. +
    + When one of the buttons is clicked, the 'Content' component fetches some data. While that data is fetched, a 'Spinner' is loaded in the content's place. +
    +
    + handleClick(event)} + select={'radio'} + selectedProp="selected" + > + {['One', 'Two', 'Three']} + +
    + {tab === 0 && } + {tab === 1 && } + {tab === 2 && } +
    +
    +
    +
    + ); +}; + +export default UseTransition; diff --git a/limestone/pattern-react18-new/src/views/UseTransition/UseTransition.module.less b/limestone/pattern-react18-new/src/views/UseTransition/UseTransition.module.less new file mode 100644 index 000000000..c2e6b8c32 --- /dev/null +++ b/limestone/pattern-react18-new/src/views/UseTransition/UseTransition.module.less @@ -0,0 +1,25 @@ +.pendingBlock { + display: inline-block; + vertical-align: middle; +} + +.useTransitionContent { + display: inline-block; + vertical-align: middle; + margin: 9px 36px; +} + +.content { + margin: 9px 0; +} + +.guideText { + font-size: 39px; + font-style: italic; + margin-top: 30px; +} + +.demoContainer { + height: 300px; + background-color: #333333; +} diff --git a/limestone/pattern-react18-new/src/views/UseTransition/package.json b/limestone/pattern-react18-new/src/views/UseTransition/package.json new file mode 100644 index 000000000..d23c9130c --- /dev/null +++ b/limestone/pattern-react18-new/src/views/UseTransition/package.json @@ -0,0 +1,3 @@ +{ + "main": "UseTransition.js" +} diff --git a/limestone/pattern-routable-panels/.eslintignore b/limestone/pattern-routable-panels/.eslintignore new file mode 100644 index 000000000..7de9f5fde --- /dev/null +++ b/limestone/pattern-routable-panels/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-routable-panels/.gitignore b/limestone/pattern-routable-panels/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/pattern-routable-panels/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-routable-panels/LICENSE b/limestone/pattern-routable-panels/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-routable-panels/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-routable-panels/README.md b/limestone/pattern-routable-panels/README.md new file mode 100644 index 000000000..d3c48a617 --- /dev/null +++ b/limestone/pattern-routable-panels/README.md @@ -0,0 +1,35 @@ +## Routable panel pattern + +A sample Enact application that shows off how to use Routable, Routes and Panels + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +#### Enact Components Used +- `limestone/BodyText` +- `limestone/Button` +- `limestone/Panels/Panel` +- `limestone/Panels/Routable` (Higher Order Component) +- `limestone/Panels/Route` +- `limestone/Scroller` +- `ui/ViewManager/SlideLeftArranger` + +Using `Routes` and `Routable` you will have a very simple, declarative way to view and navigate through your panels. Just set up your routes and `RoutablePanels` will take care of the history logic. + +Here's what your panels' JSX will end up looking like: + +``` + + + + + + + + +``` + +You can find a more detailed view inside of [App.js](src/App/App.js) + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/pattern-routable-panels/package.json b/limestone/pattern-routable-panels/package.json new file mode 100644 index 000000000..8d8c29084 --- /dev/null +++ b/limestone/pattern-routable-panels/package.json @@ -0,0 +1,48 @@ +{ + "name": "pattern-routable-panels", + "version": "1.0.0", + "description": "An Enact application demonstrating RoutablePanels with Redux.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Routable Panels Pattern", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "@reduxjs/toolkit": "^2.3.0", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-redux": "^9.1.2", + "redux": "^5.0.1" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-routable-panels/resources/ilibmanifest.json b/limestone/pattern-routable-panels/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-routable-panels/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-routable-panels/src/App/App.js b/limestone/pattern-routable-panels/src/App/App.js new file mode 100644 index 000000000..fc525f8f4 --- /dev/null +++ b/limestone/pattern-routable-panels/src/App/App.js @@ -0,0 +1,47 @@ +import kind from '@enact/core/kind'; +import {Panels, Routable, Route} from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; +import {SlideLeftArranger} from '@enact/ui/ViewManager'; +import PropTypes from 'prop-types'; + +import AboutPanel from '../views/AboutPanel'; +import MainPanel from '../views/MainPanel'; + +import AppStateDecorator from './AppStateDecorator'; + +const RoutablePanels = Routable({navigate: 'onBack'}, Panels); + +const Sample = kind({ + name: 'App', + + propTypes: { + onNavigate: PropTypes.func, + path: PropTypes.string + }, + + handlers: { + onFirstPanel: (ev, {onNavigate}) => onNavigate({path: '/first'}), + onSecondPanel: (ev, {onNavigate}) => onNavigate({path: '/first/second'}), + onThirdPanel: (ev, {onNavigate}) => onNavigate({path: '/first/third'}), + onFourthPanel: (ev, {onNavigate}) => onNavigate({path: '/first/third/fourth'}) + }, + + render: ({onFirstPanel, onFourthPanel, onNavigate, onSecondPanel, onThirdPanel, path, ...rest}) => { + return ( + + + + + + + + + ); + } +}); + +const AppBase = AppStateDecorator(Sample); +const App = ThemeDecorator(AppBase); + +export default App; +export {App, AppBase}; diff --git a/limestone/pattern-routable-panels/src/App/App.module.less b/limestone/pattern-routable-panels/src/App/App.module.less new file mode 100644 index 000000000..23782defd --- /dev/null +++ b/limestone/pattern-routable-panels/src/App/App.module.less @@ -0,0 +1,3 @@ +.app { + // styles can be put here +} diff --git a/limestone/pattern-routable-panels/src/App/AppStateDecorator.js b/limestone/pattern-routable-panels/src/App/AppStateDecorator.js new file mode 100644 index 000000000..67ad38cf8 --- /dev/null +++ b/limestone/pattern-routable-panels/src/App/AppStateDecorator.js @@ -0,0 +1,18 @@ +import {connect} from 'react-redux'; + +import {navigate} from '../store'; + +const mapStateToProps = ({path}) => ({ + path +}); + +const mapDispatchToProps = (dispatch) => { + return { + onNavigate: ({path}) => dispatch(navigate(path)) + }; +}; + +const AppStateDecorator = connect(mapStateToProps, mapDispatchToProps); + +export default AppStateDecorator; +export {AppStateDecorator}; diff --git a/limestone/pattern-routable-panels/src/App/package.json b/limestone/pattern-routable-panels/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-routable-panels/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-routable-panels/src/components/README.md b/limestone/pattern-routable-panels/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/pattern-routable-panels/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/pattern-routable-panels/src/index.js b/limestone/pattern-routable-panels/src/index.js new file mode 100644 index 000000000..164498fb9 --- /dev/null +++ b/limestone/pattern-routable-panels/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './main'; + +let appElement = ; + +// In a browser environment, render instead of exporting +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-routable-panels/src/main.js b/limestone/pattern-routable-panels/src/main.js new file mode 100644 index 000000000..93f46c26b --- /dev/null +++ b/limestone/pattern-routable-panels/src/main.js @@ -0,0 +1,22 @@ +import {Provider} from 'react-redux'; + +import App, {AppBase} from './App'; +import configureAppStore from './store'; + +// set default launch path +const store = configureAppStore(); + +let appElementBase = () => ( + + + +); + +let appElement = () => ( + + + +); + +export default appElement; +export {appElement, appElementBase}; diff --git a/limestone/pattern-routable-panels/src/store/index.js b/limestone/pattern-routable-panels/src/store/index.js new file mode 100644 index 000000000..46c415151 --- /dev/null +++ b/limestone/pattern-routable-panels/src/store/index.js @@ -0,0 +1,30 @@ +import {configureStore, createSlice} from '@reduxjs/toolkit'; + +const naviSlice = createSlice({ + name: 'naviReducer', + initialState: { + path : '/first' + }, + reducers: { + navigate: (state, action) => { + state.path = action.payload; + } + } +}); + +export const {navigate} = naviSlice.actions; +export default function configureAppStore (initialState) { + const store = configureStore({ + reducer: naviSlice.reducer, + initialState + }); + + if (module.hot) { + // Enable Webpack hot module replacement for reducers + module.hot.accept('./index.js', () => { + store.replaceReducer(naviSlice.reducer); + }); + } + + return store; +} diff --git a/limestone/pattern-routable-panels/src/views/AboutPanel.js b/limestone/pattern-routable-panels/src/views/AboutPanel.js new file mode 100644 index 000000000..506a43992 --- /dev/null +++ b/limestone/pattern-routable-panels/src/views/AboutPanel.js @@ -0,0 +1,59 @@ +import kind from '@enact/core/kind'; +import BodyText from '@enact/limestone/BodyText'; +import Button from '@enact/limestone/Button'; +import {Header, Panel} from '@enact/limestone/Panels'; +import Scroller from '@enact/limestone/Scroller'; +import PropTypes from 'prop-types'; + +const example = +` + + + + + + +`; + +const AboutPanel = kind({ + name: 'AboutPanel', + + propTypes: { + onClick: PropTypes.func, + title: PropTypes.string + }, + + render: ({title, onClick, ...rest}) => ( + +
    + +
    + + + + This pattern illustrates the use of the Routable HOC to navigate a + hierarchal tree of Panels. + + + + A Routable panels accepts Routes as children which + themselves can contain child Routes. Each Route must have + a path property indicating its name within the subtree and a + component property indicating the component to render when that path is + active. Any additional props will be passed onto the component. + + + + Instead of setting the index of the active panel, you set + the path (e.g. '/first/second') and Routable + derives the correct index. When using breadcrumbs or the back/ESC key, the user is + routed back up the path until it reaches the top-most panel. + + +
    {example}
    +
    +
    + ) +}); + +export default AboutPanel; diff --git a/limestone/pattern-routable-panels/src/views/MainPanel.js b/limestone/pattern-routable-panels/src/views/MainPanel.js new file mode 100644 index 000000000..7244fb8ab --- /dev/null +++ b/limestone/pattern-routable-panels/src/views/MainPanel.js @@ -0,0 +1,33 @@ +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import {Header, Panel} from '@enact/limestone/Panels'; +import PropTypes from 'prop-types'; + +import RouteTree from './RouteTree'; + +const MainPanel = kind({ + name: 'MainPanel', + + propTypes: { + next: PropTypes.string, + onClick: PropTypes.func, + title: PropTypes.string + }, + + computed: { + text: ({next}) => `To ${next} Panel` + }, + + render: ({title, onClick, text, ...rest}) => { + delete rest.next; + return ( + +
    + + + + ); + } +}); + +export default MainPanel; diff --git a/limestone/pattern-routable-panels/src/views/README.md b/limestone/pattern-routable-panels/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/pattern-routable-panels/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/pattern-routable-panels/src/views/RouteTree.js b/limestone/pattern-routable-panels/src/views/RouteTree.js new file mode 100644 index 000000000..17940df89 --- /dev/null +++ b/limestone/pattern-routable-panels/src/views/RouteTree.js @@ -0,0 +1,16 @@ +const tree = ` First + | \\ +Second Third + | + Fourth + +`; + +const RouteTree = () => ( +
    +

    Route Tree

    +
    {tree}
    +
    +); + +export default RouteTree; diff --git a/limestone/pattern-routable-panels/webos-meta/appinfo.json b/limestone/pattern-routable-panels/webos-meta/appinfo.json new file mode 100644 index 000000000..58c7a375c --- /dev/null +++ b/limestone/pattern-routable-panels/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.pattern-routable-panels", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Routable Panels Pattern", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-routable-panels/webos-meta/icon-large.png b/limestone/pattern-routable-panels/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 zcmb7HS5y+HS`_?q<0WP=pa>klSuDDq$3iF(vgl7W9UUdlqL!Y zC`gc|fC}>B=lggc@9f!~vpYLycXnoW?xdO+>w##%GynhqgwWSEBhrL_or;t=Qn)17 z5ed16hLHvU(3(wq;X*;2LtOREi~xX00RSNWApr23xD>ww0Nj@X0KPc`07``b0DC}b zucUNYgmM@?3XTwU0;le zAB01?B|i_ulb;!_>a4tAgLfj~xvq+}42m&cPge2rr zJkmCMGz2224xnHUAUgvUs;-h?4FE>D98-{yvyuHbQT9E(ELeXC z{g7xV-bbgU)_L{()x+e-mR#WfSA-j7`aU_OME(a1Szb{XAFYrnrPryyxv zx~FI@jNON{4xG8G3xnxn8rqk&2^uZ|9l8%N}15|3j%KyKCX7ly?I*vc3}z8R1jA*=teLZReISRl510C59uyEGfA z$k$BM?O+gEyiB1#)uh22by~Y0V(BBz7IRK^<-cKNY05&=<|%^3jqr1mQ$3xZaLVvh z*iF1Jj9tOOW$BFP_E7g&;{YUSnj8Ff`>>@kLkeCobtb}1Xio|rJBb~}08``p=v41L zZA&9z?>El6faTAfr^V|#8Lu-)ZEo-KHSyDD->3FO-oaBZdtG!Vp3?N$R|zDf^Z_j0 zmPg~$a}`4w7&V)z)RJWNrOlS$uWzQHG<5-_YZ8*RoTW%t$`EEqY6M7IiKm7tlp%0x z{s8HvwdOlR9Y+u5O=RTyQ)E-)kMWWmjpbHLbh_0&ilOgWbsE#Y`8nbYdP#Y4O3lC> z{m!ty?9q^rqcsy3*M>utKjxP#DTyl(M-B90tf(`TknWn;HdFPktl_BFnGvPAh^?{S zEkOmPVqMV``i4jM7-{rk%Z-SVZD}_hYhZ%Mj<@iw)ga(%#y764e({=Fh$%VzPe`^D zY%(*lX)(8isp#>Y*RAaHeT7JsXa)CodpK<{mHYBS=Xs3U%<9FCbeUz9;N53NIxWHR zcx+o?YxE!hf`XU_q6Y6(~6`KR#u! z6kyntQ}Ff3Nqn*-8vX-c(js6xj_~lX-0QG5CI1V+o)|`WwFcK0O+-Ix+aJx@Sh@gT z)+V{Wuo9C;XBpTLP&F?$)Q98ijM1`N?uT7!Up_I$NOYcQy<3}1{42<;pxkGVr_5w= zFFRcmiQ~h!7RdM}GmMgocp)4ls@v>tn^Ri!zff9BKVn|M`2Ias+RtC*M*2FHXbhaf zHCuWn7bU|L@zcPjg#cl33!j92m87rXU)=elSs&CPJ4|fH;P01CTFGf;W4i; z2G2z*)`q+AQ%y-bEWftj0tX{r$N$q@bn&&y?(RC(SJKNSwM5s4k)W}yP-|I`9Hzk? zVP2w%=Ht&T0l`*wI5!`lf0i*0p9OtCuyb!JQN7+({9Fja_^RJ=bJ1_-vnxZj^ba zwaFILybb{abWCht-HlTprCXze_OM*!L~JgG((l~&p0iaTVM~0g{HgJ2oyi9|q#R|T zIhqgpK-BUb%luwd)I+zMjKBA}ui45J6(IEZr`@XfODy7t`oMfe!qIOHf;m6lQZ91# zxiTyUY8T*Ei^eVfc+u} zgz1aXfaE4lI0J(Hg@&rEVr?--)}WvKeDatTWv&((&vK)vxu!% zd;YwYhE-jvoJ46Z$2?>l@zq$+Z<}bs02+&Lej%3TA>$c&b8U=y|8&lsx!ZpyiekW# z@N0$sjZKI;!8?afU>4~Sk>?smPEK`e!HORmS8i72M5ej^5w#LkOl|po(%d&YDFs5F zJen~*w>R`M!Vc!-m=S-JIJSnyfluj=_G9nRXsB(;_LnFJNrAmH9V_cl)o(40^!Q`) z6xfj4kS8*21Ji18qaBe=3);>42;Rk!WcP^AsQaS6vG0&iYf`TNWbwdK^?$*Q#0iQ2 zK3`1Em=1hN78MI~!jM|ntgh#hCF@O^4yM*&@{FxPjiDH3Q%mj>?1+!a`qG`jk|Nf7 z9RZD5?R?ylg5-aa`wBO9$@f0EP--M3{=U}q-uzK@jGlGIA^>9I?3NxEH?^eP1%D=% za?ukI#5mP_?8)_&_wOMZBAHj;;UMw;ZLsMpE-*@-nv|scj!f4?veBw1WE071&@4L; z_G+CaCht5HPoFSEOnnaZx70-Ia1}%sWWlY-4aQ6qCeJ866Yt&OGm!9~YB(Hw;6oh; z@l9)or2E{5EwvL&V9)^vvBMF0w^7iH^xz0(X7p_M-xpClOUoXwj0Q!0TQdxEWolJ7d-q>UV1j=A+mGI_X=az;u1`guz#p*_Tj6p+iQGia{~86RaXm3gi&RG!W(aK4OBOoVWkEp@6Fx5+vv=zh>;=Wj!SF* zjJ#x#%~mK}JoK6vW5dkhpFjzsv1Y&`Pt_8)T5T8io{P=WcS%$K_Eb1vnXjC6(6yB~ zOWNhccU_OP=`Q$Hd(dr%7i>gT^N{b^D;KSA)BQ;%dPStPbzQfa&TpMGH{?!BlIvCC zUuDsJ$zIR)qqUiUa81J?7ThPEHF}wzp+@)4)9@YVarRI~8x|3oh~}(g7|cLNL86Fe#nBH0{;1`4Hi114vkA9Uzb-RM-2rW9v{gv$n*D zc#c>(UX3Uh?p{Xv8W)hb?Dn06<@%YvI#tC66KeFA%NNi&XWieV(B``Rhz#jN=f;@e%9$eHQ~x?E^-v>5(|xo@&GtJTGex{azFF zmWX3=rz*3{&~4=%VZxaunSF7Jq<=WRE}pM_rJD|5nH5#3P6sBCg+=7GMl`Uc1;4o> zq2LoRu~om%1gC89O>$z#jLCijUVqX)=ZueR)d(PX1Qa*lZE2y8ywTcRkd!C53`b4j zSLFB=*$w!pG(y4CZm8Gp_U?~2i(NhPQ?9jEFPcSvdqd8T zR9+_dq&8R_OG`e|Z?SteR@?OO@>ZW}78j~&gJd;@b~#a%J~7yXnuPll6?h!H9CQ}Y8=qVqw@ zsPO=|yPs%eBF*Q5!89i!;msv0_>(Z?Ou9O{{Qlqbgnq40jXaVkm8PwXV)tfcCeAf? zSZyy;>VT2i znVe}dDdn!-qrpwEG3auZG1yD68D-4Kk6E?}GKVkx>dRX=rXBv^(c=Jl)t&qYD|WAN z8ztJtvOtR?h+G|W5AL}J-x;kZ5av}T4*tke3gFJ?0up$aRMr`0iflKG1@kGGz6+3? z_=IGyJ7vAK#e0krvCd;8-SmsC%}}_tk0jXt2`nmP>QIb<3)gFjeey$gs#>Fx%1Z9n zPpz81)$degmuf`N(2Cch)RKwh{u38C^^By4Y;@+*^o!N6%Jh-9Ct_4IRPj-%-RRMzp1}VAGOH(Vk>1%A!lF$kb zUhAiW1eeIfJN9?rJ_oIN9`{Z`c2)43Q0xO|<1ZxzQ%wQ2qC*SG%dAAh9D{rG!&H$7 zGTi$vD8ppfFU0l5JyUWTE-oUd_;j>xd;@!M;+F~qUDIh9m>&Eoy}!L_wGh^=HgVV> z%(nYR&yeWjBC%VjiQDR+7;*a*z1m0tbL}8=?T`zZ1;;-9y4$g4_TaD1W3I1mWl6;b!LMf{F+ncl%e(0}wjK K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-routable-panels/webos-meta/icon-mini.png b/limestone/pattern-routable-panels/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel-redux/.eslintignore b/limestone/pattern-single-panel-redux/.eslintignore new file mode 100644 index 000000000..93c033154 --- /dev/null +++ b/limestone/pattern-single-panel-redux/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-single-panel-redux/.gitignore b/limestone/pattern-single-panel-redux/.gitignore new file mode 100644 index 000000000..f94ea516b --- /dev/null +++ b/limestone/pattern-single-panel-redux/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-single-panel-redux/LICENSE b/limestone/pattern-single-panel-redux/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-single-panel-redux/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-single-panel-redux/README.md b/limestone/pattern-single-panel-redux/README.md new file mode 100644 index 000000000..e46faeb02 --- /dev/null +++ b/limestone/pattern-single-panel-redux/README.md @@ -0,0 +1,31 @@ +## Single panel pattern // Profile Photo Picker with Redux + +A sample single panel Enact application where you can pick a profile photo from a given number of photos and adjust the photo size. State is managed with Redux. + +This is a more scalable version of the Profile Photo Picker. It is hooked up with [Redux](http://redux.js.org/), using the presentational/container component pattern as laid out by Dan Abramov here: [Presentational and Container Components](https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#.sidi8whzp). + +Run `npm install` then +`npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +#### Enact Limestone Components used +- `limestone/Button` +- `limestone/Image` +- `limestone/Picker` +- `limestone/Popup` +- `limestone/Slider` + +#### Running Tests + +The sample includes examples on how to use unit tests with Enact. To execute the tests, issue the following command: + +```bash +npm run test +``` + +### Photo credits + +All photos are found in [Pexels.com](https://www.pexels.com) under Public Domain CC0 license. + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/pattern-single-panel-redux/assets/images/car.jpeg b/limestone/pattern-single-panel-redux/assets/images/car.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a8fa4a97354722da62212c1130acededfa89ca46 GIT binary patch literal 29446 zcmbq)V~`y{x9u6*wr$(C&KVLM zUA@-ctN*V5-2LPA7A{TEo6=;)YOBsjSL zf`o~PoaoJ z-D}T9PFOR~nlsG9rzR|dU7oVm+uV$NEz8x^ewS;iFLH7tZJ_lg%HuG`Si5L#Wxxwg z@Ta@~={&DwWvfz2_QUt|{t&U!P*;Mvn(snPF)AFS1h$&8nQ$!Ti<)b8si+dl5k%(V z!%}wKfk-{($8C28y2Y1)aHTi~QdS$y&ME!iiquE51jGJFEe+E5+jduK<7P1z5fGX( z{kPn*`3z*8sAf~MUHapvzkuHJhdHNLZ(h^4>(rK++)U{bLs9q3z_dHSp5(_EQoWE0Prh2v^jy+*np9y4QKmWLj$X)*i25o=~Sb z`=3g`U%lt2jyPHb6lu*$Gf5ZOoO<(A7`k(o7+MzCuRCli!lQqdG47d3hc|}nPf?* z&S-y%Zu46@H@igo2d+OBRdJ{97zBG`n^1q+-Vg5HE8*4g-qER1zs6uZ^4f(S(=U8< z6FhhC4W2H%L*J${e^Z1|DGJrU_$VoTME!F~Dly}8I{zV6IN#lkmVx8Vgm4>AixAJB zd&LbAH4rkfux8}aFRfMD^uBOv=*(KX9cVID{<WN zDT*3^LE6>)HQ@;H5>BkuBbMprvC4bg@V!B+Uf#)0zKOZnS>x1>gJ-E&w`4A(N0b&? zdVz{LY8)90@K!F>$%$AI%SRdOtgATi$Wc3(rf3#rKegOoIe}*x&<>m|n~OdtGl%$*)~`adRJ=M+uU!*Z z(Da__CK^z0V4{9OeD}O5hZFYA=ANW@S$&k#!<|DXi7DysSUqF#RkQT`Ec)Dgb-QTC z?(orh?rFDTcCq!1_k2RsQ1y8bsK^xboP#F4Ql77x#fQ>5OA_<>S zE&se@uo3z;6l~QN6<%L;Z?*e+Uzssuhe$Pj;J1tA1XFh>K_R1*OwTJDes4BM_txjV ziVdkb2>##b@P-hC+YtJAs+j(TtpLevKIEwa6~UH=ud7IFY+7~Y_B1e;Js?X*Z(qS+ z-Zs#Uz{1amo2rdC919k9(v_1l(=Uu}m%nt1j>?o}-|1}bkLRy+HyvD^%mSh^Rew&+ zh8%D5A1q7?RDY-wcAdVtx1<|q7ly8x&I^YtJCm7Mb zkQ}83L$hS{)x`9ro@HF95q|d^4R65mgrsA)!9uLG zv{SX+`o&V9}*miTZbl09;zpwctM*z@z&(kKA`z*Vi;At-z8vvzGFMwTB} z*XK0T&r*V-jNXQPpui&b6`(uC_KX{8VV3vStJcD?6^moHVJT1`{eJWdty9;*%a`O1 zRc5)n7K3(I7klDb_Ymv+%#Gb@@1ZI-q$)`Ya%z=DD=U)s>C+7Tgp#pnNSR>nSf06 zRQPJ0k{3bKgd{jW*}!z~;cLrmb(1)VuYKOi2{uKNht+XIfm+Z%LO$4o!-Qy=RZK?R z=dr$4WMKV~EqC!!XqcV$tl`z&bJco!%2c$N^nuqL4z^)RSE+V!TJOlB7#hqkTx|&< z0ac?b_%b0dC(?F&?zrndoW2^ijD_&kb$V}o%&LpaXJYvCdo@QcBb(5n?5uUg#9Jm9 zkGM^TO@zO3s6isw+5TLy^UANOMu1!!B*#NpNwl%0zE4H4tHaCLk$CoQTc7bUHH`Q8 zS`k(k^+22hwyc7i$*zQ@KlF6Kv7Qf1JYgKP4%)MQJQn!pd+7*{Hq0`<>D<%;$G0tKJkg z*Xif|y^B-I$@JsbHyfgcskY&hc0PWjtG2YqE{%c0I4GBlyyD)&(-0R9eekmdO6Z>7 zF?U}lOUQPapu>frkn0cK+L!&uqOy%%9;d?)YANe$E8=uLM!TI8`D|UDvww)#^)$3^ zYMOY8lBM^L@@;8{s+77-dT89*Fb3FdgIzJ1@b3VGF^}dl_5Dk*iFoDQY-Vi!8$W%g zdQ1cyrChwm;)8QJ(rA~`30R}})N?Qea#SLI>ld-xlq?kgcw7}IThqOZ^WS)Or(Wd0 zpkDJ;9X!AFGx&w`T$mss_~TcKHTCu4X6vE?j8=6pE{bpv=I$7|si<)_;oFt@?(~ua zsQ(W7!&Q`WP4p>YLamDh4NLXhH)n=oijI-YP8C-X+BP%c75MAAf9r|wocf?};7WmZ zSn;+*EuJa2Wj&POjt?47=Hyt2qhHA!C-6KJ2HS2mjNo1_?^i&cT8ot8YnbWL zPcCOBp(*(B+1|yvURQI@&Y2#3yWA^#BWvO20x*p7Z=c5?a+nC3I}WPR>jta#r+UkK z5B5W$Tc+3r&fBvuL>Zx3t*cU~E!?a8<1-CeV1btF_!T8?jhc0pVxU+_q6vyoVFTWdXb1?;Kd;krzo(x%9WxPyUgKbNEdZqIdn z&Ny(6tnH3S>6(kIQMk#mp%Q0?qoVIt;nugs9h-MMkBU~KINX3y#LZbg8 zmuEv|Xe9_s@ZcTls#U(Mb@(E?gE766W%(_K40=RolC4VpQ{8KVhf?0%oF7TNs_6_Y z`1R)5(jXQ-SHR#8C$8P%@qk~H9c3295xMd<=@i{=^OXr-q`d32VU&x`E*0}ZGQ&ya zMXTKp+MNTAIl#NivaH$^bS=yCc+7E7Yw&WTo=t|^U``+JzQw3Zk4F;FGJkp%SE{*n zNfpx+wN)`wWY@>BX0ec~rl+#2jBZi|r7N`Ai^K4uA%TS|=7;G1@ zWRsUrpB#_J)A8WZBL<+Bs?>QGhw@YwAOZO2;up^wK{Qh_GS2@nAow2){*T84{sRF3 z8s@(tfcg&vhZhIttfXtIIReM-?VxTQln6n`VnP|70v<8|0JX;qb?s;t&k?2o-_RV z2V`>v-hY%e1RhPs#@Okh%Z|RQQ5WXDHE8QTq;yZV_G(zAZ%#4Hnm2c}fI4D^$(-k6 z6(Ay^-ei<9U?16J{q~Pi;&1L6bolZzeT~u*dJdYey~=c@lCYRElEh77TNN=x%T77< z&ZQ=ZU1S+~*``*5%FpJRXXFOqy{1}sRJ2l?%JNWQVtc3*5Y{aT#tYCK<+XyQZSB#r2zKQ-g=|%+B>+IDt-u)o<927kCH_=dN z)dtx;Y(&Pbveu14H0S$cGxhh-ntewEqbq)LV1#!b+#Md8oUX~dag_*C6;+ia^mfB8 zib%)Ow7_nST-M}vJMSnNy8DY)&xQWz)EwJqO z3R@q6$3LB)T!oGhKk~R7eMj-ub@wl4jA}kjJWbpjh!8CoqI&jwWfL(WD5=WGpR?(D z{bi#gnY~<`j*B*`fAIZ~&??q8B1Vlgb%gp3?oO)KUj0^ecbH4qmupxDxsFcw6raE_ zI8-=tZO$TYI!;^oZoe=U7MVb}!|qQ)n`6pF5=#GK!r%y(RK6@Nns}mk;$EUptaVA~8mrgZhO@UL*0~Ru2OnnX41R~F zUP~;H&_8K-x^1dKOJPe;I`&7z-en0(Qh^Ey7jYja56!)IY5Fp`Xpu$LSa@|lMJg9h zLAHkIJNeqlh2Op_k^R}%bwWrSV@)_mR%X&b;#j{qox$_#mH*EA9{(x3u4RYOvlcN| zaxC5Qi!XGFyuf5*NbNEw%jmH*UMUn%ZLZl{L@%tRJc9vLGsq2Wn#O;Akyx=i0USJkIcpQgvirDdKGr| ziKWe`?5=)Ozr?tRbg%FTJjeln9t-qYFkIboCBM8nlhbA zYaifAk*)OA+jgnv#44{la-Q?O+BzevT&v&ZF{|x<1$s9 z`&5M$TqVatMisIp^V^ELW&l$$OS#;TL$NN|+G}_$^**n(<#8-Vz5)(kgBN;+xf#Yd zp-ChsjTbK<;~aB-S$93>&YmLG+)1{I@VW}L>q}Y6okCY|Pl}TyLt-Fkk8^Iktbb7R z^jrRvwqmUrza~I)I3AN#C>fpLk&Ag-j!C&LQs52NEP0>+7i1B!1Dy@&_`I~T=~&c9 zy+FP2dnfSZp5H9q;Kn$0Jr$He=GTl}7Z*F!8Q3nU}KA*TnnTwuJ2gd~pAD5MEgfvA<35B-Qwfs8A z5j+)^96_kGjv8iP=He6+tS6c9bb*xG35;y+5Gf0l0#!F*qz7O!E=?J3I}0?ShVGBH zZ`cbz7a{~x!Pej~g>^G?VN59wE)@=WX+?r>l>PRUZTgQKLK_J;V`KY0Qhx0FVUiQ9 zyoy!8Mh+_7gemJyWit_3Rj+Ge^$~QPkBC-kUfj8(uhvPuZjfq~`ta@Hz;>_C;50sX z!C%1^dgpUTPbN$vW|$-Xn}PSUfP_kq5IuTv&-j*a zV5Am#W>k^{zRptcde~kio@~d#^MZ$f^pF#^=|{~S!OVqTo0##%KX91dAj zNH!gwBxD554zBiCR#Y_AHJyc?G910TVzh_AgKtE4wJ=klUGs* z1EaDPpIy}Mg$85b067qg>kSQ0veO6`xsGn7w=6RmQ5M|Af+ zoT?WT6#2Mmze}Q#s5o$o>6jrnj=1LT$#P*v3h0Sp-HwkuvvbLlz%xH_8hQ?00GU{A zDZA?G@2(~)e`%m^)S0V@mc`N;Ml!Q=s<6!}ZmWo)Jwc=H|$;^;mi z*y1odQ#&8QlgP)Cn3Grcgk7}!l+KMP~$cZ_VR>x>)?x1XKno<#9*|Ze%b}#@rP-?T9L2s1L~EM;-1{Q~zn(QVmd$LPmW#@s2YxD7aHEg* z%1`66yP(jufGT{#JGq1tD{`Iw-s1f5nOA=0S_aq9x%Qw$!D%~#7Jl@7gE+1t2lnyb zOUAL8;G|S;Pmh32YtYwv54O61pVbi{cpON0T`?1|n4seBba@xh*1G6@*b<=c6qFIH z<+%J3KtAL)qgy)@%Gf@%K19|ifd`Yv+HHV%&b#LA_e_kG=l6@DoS!qf~GO-*4yKlWQz3^@zb>8+k;faE-QWRQab(P;)PDg#f;5+TBMz^B z7eq;!Wd8+-{TN6>O`$X;eLY1_>FhrkIM+E|tJE1!vi78iRX!s$o}TjM&q8)MW4#lHVt=e@P!Y> zHnsS|s^sp&R|oCk$1INRu#)MN`d@&jN!o-)(%>H3gzXgm(>N8g0xm&+xda^<7eQ3W zVg{oF<36$HYc;nY|BNkd6-;R4Pl7Rk6te4k9|RQq9|$?+RQz&c_{Mg;x4_U-lb|SA z)^VYXfUEUaa&Wd4-Ui)&};Zy17yAwd-Ml@|-d z1V57kAy3-91SV*}>#4Z%{TZ_Xht=k{>MI$-_qM;O)<_RR;QNCYh+sJ~1d0jfnvz>< z)ZN!eWGO3UMrI-7PGdEtl}C-0D+E0(@fY2%*z;LBZe{PhzjgmslUZvZ_SD_0Fed-u zrK3KRt5-ku38eqxR+Cbp?-S;SZ29gzTiiV~F!oig9AB>fTcO>yUZIk!2$s~-_YnH1 z;xvn=LoIk>_QRF#Qfsn7>?jZ@PYwp`2#Q1TQ z*GT_t9~ci`4plf%;mXDDbmijb8s*%yE>T4PQferTO-qW;kDVd&EQOcp{PcWO_}ReF zSn?F1g{_-e{6>*b$Uw}7xjU!tWIs*Af|^33&xrrk;Z&h$#cKuLK$~N3?hub zC9I=S>fSP3Iac8hfoV?jeH8>wSwORW-zpE_-T#RiS#$sd6eKhxEF26h3=}lfKk50e z!vsYEjmaTFsez8gY3dpbLrx``T-3y_Y34S7P0bauurH-$p7N`>`3@Eb=q@h3_`kXb zN(^FpV2}oL@C!U6qPx5c6V7s6N4z%MO|2SD?0bY@V(= z%e5FjT^)Q85=hq*qVJ`K;)6X*lCB77O(0dQxv-wLAjKw9W3f`|s+MRYx~BL^6Ef6X z$VFXE)`GWWo|vAlUoWf`$O{Sz*Q<-G8oEt{W5fZktneWDG9vpMg`@9x51SR_mrPCC z8~$M>=T;thldATQO3@~Wt5d0nkHC1xr+-8ZUQ~_AG0eWefj!e(9ws9Lu?1PS(2KxhOGDFX`Rn6eFJuXU9{aLC&l6*L)L#JM#wj#OzSMyp;r zFzLOr=QoRcY!KTBVRQI)@IbW+8*&wJrwl*e6DT3BJ>a!TYhuV55OxbC2!Ovf zq#|uwEEYYKKf!+xExe0))Wi9t>W8W?cBmRX&QOb@e#t$1x7_4s5V$JardIJvgh7ZL z!*xTTW1%Q`_>ij^NFxw7>=xJ@ESR3}=imu=fOaz4U}LXv=`i9iE`@_9ctWO-A{_b) zfp&uQi~e(NqY%Sy+yTl3Db9Vd)wkmm8t-jJulZf-&MRiT#dFWKPRnEOI;CGvKbaOy z-2bGXlimLXoa^4+N4{$_`LX<_yNz@n&=B0$Z}i{qhcSJwine}GJdXE%Xv8Ml^g^wO zHT}Zm)yRBTrs2o@z8+%&ZWfgn`pw_Xb|Xw@jJClK?&}C2|Wz^PFr2~GU#7NUhlus(IWBXHB4O@{hpkgHyr7L<7ugKP*3e6{8 zn+r0op^A^lgXZk%g30f*-F}>0ME8sWvJZCxFupors=3+QOch`?lXU>yealzB_}7p! z{Qx$$-nXm85Ipeo8m_X`2OjWl<+eDE!OBv6<(IZgqaD^AgGqa>5Ba(ieqHjESu>Fbd$ zawSC|@Wq*`&JUbpKFu1vQ1@!v-6Lr)qT%; zfs}VYFIH*sE00lq4+MRR*OaPtuW(6|A}-;PJwfm3Y^V`m&aiGtAV`;k4dWN4qy|q zxx`EA(3ZmJYPUHPHyNaYwZ(%0d1T`&d3+xVhY_AZ_!yH zrUs>f(NE73=v8Z_y4Pqcg7H#RU%>`7p9Sp|uOWlT3Ug8%rwm(kqfwbl9*k}5kAKdn zDW^f&_paJT)_?NE!l$AIxhNSM@9CEZ8(%0($+_tXJW{H)3Li417$Vwufe!L`z})Tg znKAC!B2|c*szD3b8xRNR2h<23k{p^!k6~4f$T4o8b@9@r#JeV=;`B;Jb}|LB3i6)^ znfJl*-{DG^cBZo5K*`{K8)wg5R&di zaJf}!c?a$sG%CqZvK-DihN1)9isqmu0O`Sa>wbwT&c{O)+pk^g83qTbk554od&%V} z+AfSsV##x5#bwJZieuqN#BSwNRD;?Bn^Rv}#d0S7KvFJZISCF9`9jiU>D(sai>#F% zPkL!IpnQeoD=Gd-!W>UbkzAF{!Aa~dkEx%mRLk}qAfMuknkw$L@)7Mxq@5&Yq00`c zavn9GN;qyiKdaiSBS^SLM}j|D;m z$L& zb9RaMv0541ToY}pElYqy%C09&&weUCs+HSiMjXqNzUA`0BSVP-u z(aqIRh62Slt=^1JOj6t@P241zJTW6p^%=h^YxkS2n6Oqv>y`9?gWB9%dSeVBO(0k7 z&C@7&jlq<_)6S0-J|Ir_c%GJl6ylG-4Nby?iL3I1lR0O7W6%%l4 z)}qi_8R5?Z@f#$<0TTQEn3A$t>U^8yoDx#o+xc`*Ar^b6@@aJAbWjN_wSBsa6AMRo zRszZNRk>}~5|t4mcX1Xf3joXrcDC}y`c{ooMOxdTmZef5#X%$ua0(?PK1`EM9b!yE zoxt0+%Y*5P4I`j?XRSeYMr)m`*gq4)vqV(iM_bm7G=jJxZO*Ja?>)1 zso%ea0T-2jXljv#S8d~AAoejDS=C8Vr`_aZH>$zm1B-sy`&TR%sa?}RNLTS zb7HHp*{>_qQ(nX1(^W?IHA8k4%L2^bGBPD=6kh9*6o=kG!3`8yNzAvsHA|17Hodq> zPBr~mrK`utV)&pY6`RUKOvn+P>e;%mrq)B=$#6!;%j!syASRSH!{ioxwGlshtbwS? z0JO6zty&d9bY9zvw^~oD;N>APbi~Ts73zD~NtS}WYW@u~Qh!t?faxuLOvm(C%3Hu8E|53yc(H=%4o6LDVl7$O#BRrMs89;q&_cPD@UB>z zuYFqg#Ws@ZN5Ul=+)oFUN;_8%@L^w#2tuxP`p!n95Gvj%sy31nKJ96 z3Qv{zG>09XXk!`?x9z4_sz#YuSyvezNhLmsd-Vl)YP$v&zibFwCc*Cv^)>~#;n@}cI<3G}HI%!vTP_0jo~u$!2J%YwS>W{Xy|OnHs=eJhIi=Jl zBi>japK{gJXN9%yQB^w_&9|}FtJk55CuI%f6{$xz!n5Zkv22BL587S7B%n&as@6y) ze63!E5|TXpLv`Ic*`E~3)aij-q?jp*3^gFkN?Bi@D2uQ8-3i2{&{Rs>mIU8@Nh}`F zHAS=8aT4ATm zCPtI^%_0KzIPPm(Ox+*zbk{#j8KU4e+dJ979<(UqxW{x6{l9?skeU!Lox4Sm$QyKj zPIM(l)U*eMSAe_6f!}3)u}3T5iQ-!I&8;xNe{CRatR0kOy~i zY#*#G&bdUVm@;LvPL-GZ4I*uOc)WhW?Ya>ZSd2V z;c+t`l1*8gxoQHCL#7p&{|YY^Ca=|1y2*;V%R})ni!b?ePa5u!_o^|e4!d0Us$L11 zH@BXlJ$;~&?@ZL}q;%hAR*BHAbfII%F4QqAP0P|cF9JeF%<_#ij&~-@R3Pd6UtB4z z!?yIu8E{d4=TJfa8jGohKJp0ArszgcH7~_nc<{bqTS)ilE!a2Gafi&^)XrjM$ zW*L>tW`d$ChNkjXY`>J-hRC72r2QH^1Zwp+QJr*;HJ-QzyO$WoI*o7HYG}J<-F#}b zEW^xtNH|3OW@Le>CFd{jI?+-w<5wE;aV!pTI_=bbp^LN~<05AqYZJmu9-n&ANf2wKQM~TCqSIdhq^JWi;%VE<=Yce<4vAO4uHbM^OO}KT zX5$;dwA_IF;>PVnW<+nru39>xn*_Bd4Rb_FkLd?{_V*J>Y&;D4SGzV9U6jsvTil$EkQV2FRiG6Ysj(%-m|=_UWTiJfDCxQ3o+v8 z0cvTNLSo^Ye_`Ztn<5m?dQgF?v59h8)x0nS{9%>Rz=?%EjlBpZ;e0sIX|4PGDl`pDmi5h1B-Lm%QhT0|rKZ4wq^jVF1YO<-{KFqI?lgY53xj2XI^>Qn$2)*$NiJ zF<_X6at=J!K1c$*Kr6afI^IQs>Gz&lEd-kqzFJE@0}2fNH}1|~2 zpykmtGeg|YnB?-+QSw4*e-HEAzWl{_wWifu4;8LYFekp1U5?r|L}V-=k;gb+*^=ez zZen{ZrbLUrMk&T2M;#LWt=j6JN#fqua{qVrVB?{H=#}kB6-UY^ohF}digg199sw`# z$2G)(R#_o8X@LAvs)?W-$W2d zx$6NIVl!DxCStALfdp;>At`q?$ErURl*MygZ+iqnbas!9UYQkBP)^!IDDcG><~XSC zMSsrl5rF09R`{1Q#W1IH#pm0D!fSpUOX>HKhBO$4$DnFaQ-r+wx7_{1GM=D6zYvfZ%H4sWyiUb_sd4GZMmZ-tMg z7Z)Sn(fw+p%EB;HP6EI50Ai&9vUG9gBPo)o*b0&aXmiz|Qf?&lonKXcT+!W3UNZG1 z(lOK;{MpM>7%kdH_zP&QO}t^~dW*?4zmhoqOl8vXr^n?Ol1<&z{eUs7pQdt5M;!Jn zd)(Q+#GVY*AU!86+-Lb}Ghf|)k-g?lJ)(gd-C4Y1Z!zU9@oXCZ{Yi&+LeQVv0GJOn*_g6*Il@&GJ6%` zi20L=Q59zTr_WKmxZ84&w82|#d`$R?W-E`aN?#;L`tp1w2CGQeLxs=ropU(N7 znh@iuSraR-S-m{%WDZZ4irvh1HV#juR~?XEpo;|z#d_3?ckkvTzOi~MR?H?QUWC`n z2Nnm?={B0Y>JG~^D z8zxMSV6d~(BWLf4yY(ME%>zsQqT{>GAXCjE0~SU!hj@dH2ap0u2vv;C3P;M3F#tFJ z2o9d3FN3i~2@QDh&F>z>dwdb(WNfCgRKXP-af8|~;Tb$qHk9@kAelRFIqNDs>90~L zmL?CVUQr6I5=i1vWtjpGZr+rR%K4;^ZGczLm&&?*(ihGu@0r1n`Z(P4*?g*A89M4^ z5Z%QhN5m)mHc|PHgk{bPNdi0b!mD;O&VeiBgoN`*ZR!BcKR5CID^9ft^Wy)idauoN zo+x*qFpMLOmKH%z-al2~>Wx!Z*2dpd%795T&WTi7*@@t_a(%-=W)G)sTEavYUVnyO zMU*OqYX?Yp4Rum`Ufe!b4UK-qe0pxda=AqRw~FR;!LBjg1spc(@QAU+z-+gixo6Os z>!OIcP#Y44Qur*#oX2GA)&0ZthV^0Pq~*s}!*Fe69YN0)yQqDg>GU9f`RQN4v6+lv zpGt+{kc_m>?5589WY3(%QfMG+UWrun2etg~8cR4wZ`BHw(VA1%>t&y65FuyxH{hWT zchpff-3T}43j~Gy-K`WeufYZO%UQmsGGRFn41DjeVwCCP-2B{JZ@KKtMyedepjzC? zPh6W@Rof(a`u?`*kxZMS4A2`IH8LK46Jx@1x&NaIO?!Nd{qE`mQh0c~K#@oVQ`8P0 zcWy;9FMHMrH=I=eYhQ;RzX9kL?(}p*D%*oHHtgEJd~E=(aaJy|Y_)Gh#`JeE8MXwd zN-K1@Qs8!KPyrgPx|A_F-?7|)&Ro@1u9|LlF(88t%9w;jcr+Zb4yE#xV+%J+kB|tw zLYFu57a*gO;O#5PoJ*{f%X#g*;@W8q=d#coo67Ldeqsr2-|Zxo2F0@GEyrWP;GRv$ zYjKmHq}!>SU^{J^iI@LQmvJv9qp9GYcb}MofhiY)g8P~u;)&D+(G2gd5(W|M*5P|E zZo8;8=_;Mx5R#4Ra0Apca$fNK#u`msPnJz$U}3kC8T-9x(AidYfd7L=pu*@+^k5$+ z%0nQiSSB|#HT?TYrD&bdbN*c*PkOW^AAd%V@l3kx%9knf=E+cYRvV1cD*ImCn9~vd zZbAg%kP#sHvNw?DLkS_`Dk9U}by|z`e*0msO1o5c_|{Vg`NblWJs|b0Qw>XYGIiaU zgqH1d=_l&!o7X&gr~#_4$LG;1Kd$%*i^r)Jhnd#?V4d=7Z-$~P>remcc7jnQRZ|*F zXqOkenwX}Q5IQ|QFS<^)>_i{%NrAAQDY{327^rsnl`(NGysGZ1>I~jvt62XQ2HE?R zkxT?*!4qy65}fI)-XbW5SfR^N3MoVP36kY{EfPp@Ij2w8nB9j?*LMQkQ2JUOXYyB~WoLxx`JgF%f4%;mEZtiZDfY@s7YxH9 zkB48esz@IV04bW0q_MlDXh6JOI*e)=6k>H#d1i$eO5ErpePBhSAF#RP%2C|`uec!n z#8qs%!nI4E%;303iMFd$RaMWRia&AHhv+QrO75zhW#$<#H*xbas?kzX?XzUS;r~ zH#kjONG?e3q(oksyS`l9rqsZy+2-lq*bN@CkLGlp`G-W10ZNx{nd0JOd~6(aZQ>{~ zWM)#T)JqLt#364O>$HVCQ#M-iIX^ORo1Sy2ZO*$3<(m?mJm?lnxTgSQCjtZJWby(# zT3?y4MNXKFsJtM54mQWbi=6e1g%^JP(zDNh_FFg^-PoO^Hj&!#8h{8E_<=Q}FkiBV z;X0+PaMIj~2Nq5*gh%vKQ+d*EZkwkoDkQ3BJiKE8l4)`2-n~dy7;n-0=-mP0#g|4z zp19b>nK2G(_O~UVOk!$hkOy|uhq;OD*>fV%95ujkRcy|@-NUcURDy*+Q0w7LAS0w8 z;j|t(6TUVTf0-a2dQ#=K;I~Ab5!tF<-Vn<<_M|(A)J8oLnP)=~~VmU+>~eCUn)8lC{hWf$>1w?VOM z8|3ai`Iyf1r-slV{W{hw^2HDXyvr)b#-m!|w4NU6Bj8qmW5Ud z-O#2>q5c%d@rdE2F=~GygzY#IRH|y@Y0W)bz+2WF<4JmSA6vM?o+HLAlmCWAzu`fIz^^D7lLp?}%w8#B|$RP@OyW>r%= z-v=kImWZS2DHE34X35@fV^tl~?F=AxDzv83X!N3)d`tzv3#HdFDWmwTEH{=}t_p>1^nEr<~Ob15<8EZW|OOQq&K zz>~m>u&kqn1fEV6w<(6?(VqBjy;bbjz%7rz$k}ThPpFJbKm*tt|2TE zckQWEgf#jHC^xo6ztIww8{4N_dpgvWK~!83w#w(`9Lt+|T2qF+U4PY+T#p5UbO?>1 z7Oow{I!yz`0br$1u9{S`ERW%&ot+R5$UDT%XNP1?N@ht13zYO(OZrH+8k%+!!dkK1 z?c?+lMl)T>EAk_3S{oW{ZViK6u|PrG4#(S$MrY{F!I+Q22byax@pwumn5?P zTrOYyB6c7u+)lOvcp2k&PS4cbZTl>_mo1a@`%*7<{Ems-MlzVXVI;%acDVWdNPucB z#`M6<+(TTvnqOOb>KO?my7EC|SMk~e@8)7%@SPX$6cT;f>LMl!3t&Lkfvml7E z=S?%g#XW<p3*QnEj=22LKIS@JvBZY4X=@+JBim#5JKABjUu_&XkQa1GYFF_Z^ng;I8y;%M9d>1E#6umI;UDL`l@d2 z_DydMI~cL4NFZcmpsTthv|x`>LcDj>D&@!%fak{Z36Wav3JcfMIKemXD0z3PsMD0b z?uZ!_&0Ay@F%1zlzHr&4COWkM&)VosZGtR2J>xH+<%{i|k5m$cy*y`g4oY>RnZk;$ z#!Y8YJblCvILa^S;ij|V9yusbiDJ-Dq`FSZ+@EUMl`m4%DO7u4rOmbPZk`5?Q_J1m zpBoj)Pf}t0Kh1K-(vnq%7V z{Y-|H^pF5C6j*Cb@Nd=${4$QM_BpQTWs?}9ya>rjod5dJf3 zYY#^!DvLNga^00`WkAn(f4r(W5$Gl%ga1DJ##CJHpPq@Af~&HBr_vFVLX~Z$G4fS$ zvrt{4$ax<36ID}6iwX!KRSGt0dgc_7i(e|HsF*4&nY$|c@n~5m{6@E8OGvMFvGw97 z&|q=63%THxkq__kn{~2crI}6`%*5WhNFkm@FVj5tk$sZ_|Me*_Y;tDbpF=I3gq@okMCsp`s9R)5Ncfe?K{*`)(ecq9!;?t z&5&#J_`@A3nQ1^Dv6{)CwMQCx{SV`%8MOxiIMt1UdqWx6vFwf-NZ2!;#v(PTcElpp zghe>bpk@+WO~{ZIEdtpBHA7056#?t!I!*(mYA+3m@L~MvaMjwrB5+>$FQJ&sf@W4q z$nkX&zVtkBP^ZS_fW(ZBAI-*V`=qJAq%V&@LNu5j{sx}jvF@$fzdc~yXhhUuMW>T7 zr;BrQ(#&Q9Cc7adA^MEHZozV3K{L8Z+55{Y<&K;hCSeV8r?z*B79+c%Ppv3rmVNkW zm~OZdjAWbPt^1J5oZrDy-J)Ukm_;auKw8^oM<35;df=Oz=q8EiAYPlud2u+uM<&t> z{nVZD^dHJxMga7WrP1+NlATBK*ECT@sz^&($lxUr^x7cky8jA2GQ!PIK7x;{Ziwl2 z_f%b>f}PAPOU$*Izbq=uv#Gp!DYPcGgDIU_FWgo~_bVo|372;si+b*HOlTXX$pG9Y zoyF{$-2fdV3k2GX%2Sx~4x`tHUqo2({{Sqhnat<{@y!=ze?1fy_g!$#?kkPZjC_J~ zo(FnsbrPf05$bTlrq%#TVBJZuDyQ8~m`~=r(@=yZIRolAXj8()Fj?;StU(Y=s=xpl zPvEiB!Uy|Trd%Kwd=@IbOx4^Hxl=Iw;Ho?_1EZ7c)2W7PKS(_n7`rhRM z)7H1~4G{(QtUDyAfGJCX11SzQhq8-&-m0MnErL2>uAK%Wg1Up3XVD~?rgI9gEX zYGkj%Q}$}Cc_(h<)2-71?5cc_1TN%FQm%@HWyF5X^t;-#+!+fsMN6n5+`eg~&TonX zaE~yfaH;N9776*4P5qLB&d>pfGom4&Do%E7{8mu`37ybzzKY#B#%A`usy%UB2G~^^ zAHCh;p3{_5$1wuS>GyjML1j` zH$@U~;sQ{ucDi~R{dyWmF`^=FP0%6^iL5+2bTz<( zx*2lpf(>@2=c4|vzR}_odhK|Mpq@_MAMoBC@+z}+1y&Q@suww@(Bs;u@V(GZ+`xR7T2OSMlaFKbOX`}F}JHa ztcFI1>|M;O>(EM$jaFyLQPHA>b!BdikrJgs0SVDtHzj!}m371qCxuV0dwDqB8c`-^ z?BzX&g~eXs0k=Q^*#mxumjgEBk2D%2sZrCIDd-LmS6893A7hxHIzRu!04ERu00II6 z0s;a90RaI40000101+WEK~Z6G5P^}QAhE&G@Zs_Q+5iXv0RRC%5C;wpqGgm|iBl1f zlKoyZ!BmGSjdVdG04!$sE-UnDdbhQhlU+Pi%c|WvBKD<+h;oMgz*TK752XlrO;edz zk#UEFE-4Rjisf|z&xK1eM&1#reIcgc8Z3D1+YLC8}L1(#(*V5B*ymBQ}CR5i$3JRMJqk<99>3-7YF5pv=4=^x% zN|l$ojfp@@5f^u#fE>h)lL<)DOR@P{nSHOYD6w8m@;*i>Y3;9OPCL2=Fq2@SC#^>jKX!j zHf_6ewEm2nHQ!qmX zOBw;WW>x@PDi;@PfQf2;=42b0hMZzlzoJzw=4ST@GJx4lx0jX=Y|of55bBM=7gHQX zTsWu(~BFb|S-U9?Mj78M4 z)SVKl>M80oCZ56#?v;nA7tcr}O=uP>7Ais>RUXhm#h~t(siBvISGEJppl`;wrT1n~yTG9Q9y?o`sHB^8O!(Vl^zFf^>Ru(@L~)EEMVxsE_V#Tj(5 z2onrqyhOyJxvK4SK#U801ZRA-9E|l3$ z@jDVB1=J99;lmR#mQ*T;G@|&9?J=~)wo*zJ zbeE`(SP(?Qmr-Jq0F<>an8Tn3t&B+(Qqlklqk=LF83=AT10g%O2SlV*g`<^)N{IW5 zGjoM2cwE6i6%iN8K-ZXeI2*i7Ife%1MkgEcBvQlTEMbTVl$TqYaEL4-PN7<69}5*D zE;ca@xLJd>vN>oI?q+}lx{sVCP^rXQn8yUQm!BeA`N1B*ZUE&DrL8Gx5(XZ6grF5_ zMrd?F5#|o#0<0UVTuIGgCTs)d+qOFyp|sT$9B`GXx^t?(r@aporj# z`(paQfV(bR=>Vx>w(11FkV=_`B?EH?4GeT*mB(LLKsh*RMje0@1t0L#hoT zC9|P1A|qoky~q_19fgApMaEcDWM+oR!*9gQvR9A7C?_n-Xuu74X2V75X-5rViXf)S zhS8izSI4}Wnx6hr=tbmIz$o@hi)p$t$LN?cY4Acg*ffF$?lET$L4Z~BKgaZ>bd5Nnv zTd7S3EYVq5XjVYK5ljYX9HVgAVl(?u5o4>+;(QRMFg39Rp`|siQDjP{hLcIuS!ryf zUqz779*em9W^e4;rI(f_ma#j|i-iMTrS8O_YAv@9sAAb!4?rQgD=nuTCJO{C5c*xi z;ffbV{{V;;Sk_szu$}-1<#8mdiWg344vPf}E^HwOEPzIS7y)LHfOSpA0D58w4-`V@ z4p~u-QHt<(1_hI-TCqhts2SnRTjUte#Y$>x(v1e5 z4aaF-#&1*VS{jc6Kd1=(bIfG0$$jjLq8gOV&GjGNG#IuIV4~p;Dy47qB9(!Qyjd^E zng*%D>IJf2Ega@5`^3EN(g0w!SB1u95D2QLgO+5>2DF?ty7L$^jkQd5e!b8gB-3DmGN5gS&f$^;#;na0yH#O>ecPQb=ua`FELDMaGP4jiTe; z`Nsepu_RNFS}_Bn3aC7}x@R|REr$VGm}>#Cy!FJcD6V^z&{Uvqb!77Si7KqX)A3pu ztWx0G5;N3kR^TfFsO%iW?+G)cj7Ul3#KjiwV`U635pQ{M(#kAUFrr!#42hOtm@G)R zVq&q9a1Qr3p@q&AWsSNH^dez}G7ZBknF-Ex4DeP(iF{I92C{Wg9PPU-q#A ztymqEnyic*M-U580H>2NT3bURT*qJh5J|HyT3wapU86#Q=AZ6X6Drd3jv3YDR>Ws0 zX6C?|X1g$x+7yVFriBrM$ZpwxDmPFwgqE}#g94hg*)NR&%N1xMa;*x(Y^{!4a!_#t zTb)%8#X$2*TGOQ>F!Zmd9GPJ16s!jrG0$2qRlyeB7t0lb;ZDxhQwo@rdOo;`2oY!G z3kXy`K*M}jaSuBd2ZRv?N!s=@)e@)?e?UtR1q7gJF}JAFgkgndsS%MS_ z2V-5rs!*{$l^hb`RWP$d5ZT$&JT;$Tp;&^POGlqdB2Q-86wachTLnk8i6NK@2Smg+ zmMdpN`P&Os!LrYxh`ti4D3Ye~N|%^``w;a+IhV4fnJj~pz*bqvPDm)AVY+hzGP?XJ zW{F>Lw!Lz?BS}Psu8#8$C7-ybVmuyHqjDJlzU~;S-MP6r2GC1Q}2lpPgNKUwl$BP*?yjs?cV$U&cN%h5Qn z4H_eCWG!BRFb%6(g7L!BFU7Zj2d$SMnvj!SB*R2QQ26A)QkH^&@L`q!Td)*|fh8J( z+FZP{3vGZ+I;{2+Jd1;ksQ22#Q z_fTV9*#z6p3uUWi$Phgl9$}oA5_jS&^sAIF^3H6v6(Ug3!nvpkD-%+S`o@vX;wd01 zQNqwcikrw#4?+Mzqd~fcV(1|UYm16ul;Du7$V-OPmTLb1a?kumXvHa7u8;dOqzuCd zsWUNY(7!=7K*0o5hxz{W3B-5qH(kDA{>$%_9e+{oY9vkrY!b+h4G(WIFa)lH=$8`! zNC2-;rT+jKW;}{6N<&nSH*JwDQo%87vSL(Vjcj3XBV|?58VRL1@SHF~t7Vzcy;#Ij z@uRx~f+k%T#HhD4Y3UfY0az{9sOqcM!_x5hwuX;4uWh~1$bzJpPIrNrW_#@BW3 zI~*K$D?Jk*?DZ^Nu=8DXLz31FPU-E5CK?S9{sadrFCg)U4Sz_!!*JeV8{4?6{X`-I z`VQGZ+wFlCfffU@V@lCrNgoswBq{7TuT8?pwIla6;}hN5BV69USi~{Z50c#aW4RW3 zXmJs8;kN$(;tao-XAkh?U_RkDjRpo>zlS9;AHARhcHg_0G7BdL;5SRY~m>u z0+R_60lct7hPjEDmdd2y;!_)ZkoY)U8Y>pdd4($W@$a8Z3C%m{XwLvy- zkf*~KL@-BAk!e$K!OX0DTIy`Lur6FnF@p&x)EF2!VY0+pq9`D!vC9(w0HB!AqV2$Q z3KW~tqj3O6TQNhLim$_J^4zuq%c4=XRx}lDSZc>KP~f0;>I={tYb!33njV)aal-;| zwY+s5lmOA{1F>zYup4@_>68K%q|h0`-Pn&Na{*GuUhzL4irG+rx5g;3EM6}X$U|{m zKGfcBSVv@ND`Moh7flOt2Al^WqMKko;46OasyIfiQTR8^X=;pmw?JzykrK#+ zo)^ZUh@`t&K2sF##>Cp@!iiYB%Lx%UDalE0T+r((k0bhxmH?o8jY1O@lxfZpfU)NS zyt6FD)DeBbZs8)+pAvU0)FbHdl+ZI?ZKANeDxS0cM!PhOvUj((YAu0#dCN%EB+Y_vZYN z46{Va{9+1R*;CEfL~3zDG#pEf)R_ln4r8hNiuPpIcQGfBydN?P+`uSV$P));f7Pdkd*;M^RREnWzIae{p&5P`ty%h9bo1pQbtTfWY?m$iad2E7^;~ z76m?Yg&KVnpUg>Ks{)G-!vz6o@dG5N-Bi9o2FdJ< zFNUlLc;hKA2O3o#;%Njq5bir!1@4@a2mqxPwdV0GUE6DxS5a>`tYTl8s$N2RNM~Q4 zZu(k`3oE z937{>a-dd;ObjVAPm>@6RFwlwvZ+rFR4Um=W;89Z1$BZPa5VQ?N5&od97 z3@h9YKR`_(lAfvsLiDMH-R9UT^BP!)&{kVzPdEuzsJKyL^|&~-yJA;@KHcPE%81rz zj|3pm-4{ulA2u)rlu-*7c+muGg)NMw$|rR53@yN-0I?hpQV?)V%Pt~#CO0S;ty>s7 zLnat(OrHz)Ge1-8Z`@V`%7PqL58QeVG9lepFsu-?Ag4wTOa{c?_NkySztqNng4{!g zSYgX$*#2T7;=fjuF)H`~X)8M!1q4u7(REit^)8hxJ+Pu&ie0~{`)CY@fGvXTC?T@7ea)qXWuht<9j*P$ zL-ZmHe&TzGc(-N@-$7w6>Fl$A~NER4`#8Xm^Xd%Tg7L1GOE7XF3WyB5(i`QN;-y(4aVOSi~009jhqk><499YM|2D6Ib z1fy(LO2J~lc0@;jQIM3d;bU-; z#TH6OX3iM@02de7p&7g>jnPYGW3~vjSq2R>ks)yjKyvtnq6YB?@JiaE!=4cNrFbZA zWvrm?reLZ_ej?)Cg+?gIu5-i+(@g-&bOd*5I0!E0_tW*n^x80`f#fvVmkh=Y+p`XH}j%BU-WIUapW zXsD|qanUhd!q?Ua9$57O1HyCy2J+0gfllED;01*_*@>f4naKn)lXWa+T}w)!h@T=M zdrBKsj7PbqKf}|Q24yTnBs&iJz zGAU{&sIqA|b{Yh>FP0i8L5XFDc!CPAN`6>;Q6B9j`7QwsV-w2=h=mVBB-XvL`yu_3 zzcM-`Ik1W=5$4aMq5vdQTPXhk3A=C*d7598M%-q!N`ILhmi3WNu)C3^1Aq{{Um~##|4CGNF@^CC3;+ zc*!5WAD3vrtr5t}8G+=K_bK|AZqQ>TabWHTclwqbqrU08je3t|0XA>Y;xJ<}YVD!+ zOtql(8{JEg;h`+?GqkFspJ7X5L*-)k@rUi1uHXGLtCk|FfPRabj}PuSf5r-aqn3-R zdzLl3Wh5O=pij(le?4XxypaXU_=6b=%w;V;$g=LY#1Iq*0vKWi???t-K>pDN5Q0nS zWjYR6T^zMP#|Aqy2=uLTu*0S6N{v~h6!t+@^U6#%?jZ)j4=lAcw4}6!@Dq^KC^TZz zmNwZ?t;W0v&f!LN9>ohAT#};cH@Ln=UM>ghftgRDwvjoe^1Tv*~$=)U`R6PRD)Y`je@+F$nLZVk*_Efdy{?J9+NS4d)4 z+y3dF6S5v~D>*$}pp;v<17(n|9E@ig`~$v(x~Z08^mJem1JcCfJTDhHiVpE68AF<~ z{-}XXMp-8tsA*{l7b2Earbw`>s8Ux*ph3W9Q>aabW)Pofh}OrSgBWaVZgI7S`D#7x zg##Y=e9zvWfob{}y>JArg@P{V5qX@x<5Ns3*b2W;M8oUU z1il$3w;znMyFftnqOT+vOj4X`z>#PQ)>2$j-|Vy?h1tsZx<4|&Eeq(Nnww8fe=N1! z+7O3m%2n)3!w9n$5lE$yyh?C+4a=pF#|=U`Ag~g@+3-s8&Rxnlf}uGvT8YVspkOsE zE_cfhg0+Y_G3Y0F6~%ol%TPovqaG*-30W{`MJa8~S1iWr8IBfJhyZCYSbTPkN8z3@ zvF>5XhY1TTxqQF*30kcWBZYWK(=9J4OfXc0tvReQrF5s<99;*l&QrL>jwohf#lr1s z6B=tiFaE@haS8=h1TZYK$iljU{;J3PQ=*~&0FDANo~KjZC3SCQR^9U<^vVx)|YXctxTHrwYNGLo- zly@n>=*!^(V1T4N5CEx8g*fI_6C6clidt4^im?npQaVfIJ<3j7@mxCC>>;#u_*hVdb!DelO|fkOJsMkAPJdmt4p zvw)nrKsuw#yuVceN%2#$;Grv~6QTP2L@uGsZ3e^yoxWdyf^X!{3|aVspM^{jWER#b z3}OQW4A&Bp9{?6wgVwdXn$1qfQQ!mhXTvU&Z9g< z5=3x{&GBCbF^|PKJ_QNR4G$wIc~B{Ic_C1@1GmcJW)_zXwg!tbZB|0iO#v6&h}#Cl zWOZnvY^5S^YO=8(7*L}CMgpb+>+eLlvCBAnHp{*a4iAuoG<%Aq?@Cwd7_SVY4L=D6 z2m;t}%o&|al#bP>GK5Owf+f{esLC8El|8cn($`&19-&sqREL@MiofR;rW9MGdD^jVMuY$2s_u+)HW5zAR(#{0yQRL`^0b6zV&! zeU2DeqwxJRc08&n($S@f6#mS?w%6w-;k~T7wjEu52pdg>zaj8pZYnv<-mI_gGp100 zE9X&_L5c7w+4x7I#ce2VD1xo#vBn^8bQO-iSa0GmU$!dyB{M#7MD0}&dl6)5s47LF zs>OUYV+`K*%^(0ua$t)Z4-%$!<{MSY6_m$ea>DZwgairPSIl4F{9TcTrA*CAhq#_f z&qL#1YCpg}1X$A!HF40?U9>>K)L^4=2I`-I_!N$#lqI{4w6TbSBQh;p9IXPV_cneR zO1}w~GBB8T>Z}mJv1TiX=+VMf7&j5-2FFMkp@)7{YTXe%fprV>NFiVCGU=H^Pz;D7 z0;1l#l`*sNkmeXX?Sn%6X{p)}JWo154+~3r_#~*QU(7q0BUkWmwA?G`w3c^Q*)h?( ziz!ZJqz01#{8lpukm(X#o+H_NM-OW&PYG6fiLmGs089~R3_rL61H?umoTyioXAuJQ zOD#bYrnHn+BU3oc!lyAV(kD`q@dF)%fNf0^uQn+L9o^58CYO}^$H!mpOVOU31Jwd*({s^p;fIJC=umsJ* z$lB%M7`aP1l+<|f02?q4k^rHO3%I>hYz{da%1F*yxIh~roaUhQiF1|+H>H|S68_1a zIuQx*)&*~fn&RMyFvCz+YNP5{C2^QJCJuC41$1mw*l!^|#J`pV$&bO_R1^R~@d&m; z8lL0d65N52#A zmhu<*moQqY0vD>=9$1G-AN`oYb>Wu@R2H_uuo=Q47<)|zadn7d*eb3I;TK4Y#6`k< zh#{4^{gl9Nm$Z10^TbqAk_Mo%Wt1ZqtE2bz2^392(iYhPRJ28tjtCbK7MdUsg4XA# zH~|w1b1A|*xIQJwv_FB#1-rOh62}!UfX4LaV2(UD@j|31YlzxaI-f)huKnBwV z+U_5@M-eG$1B9$VuZTjSTo8yEc$5+@$$hhE4j6Ho&Kgr>SOG3ufgr_KfaQ$h z$MlwhCHf8s!_3?TmOu?GQb$t`Ww<$(IhY)nKt^GUTuh2Nq_~Kj*;{k5R&YcX3sS{h zhKNd^2{$1awwJnE(fdN36l{ zvmtM0Ul>%X40VXhiewqZ%wfGnrJlxuRUAWQt$_7zn0f!EnR$pY|Oj(*za)ekBSFkyR;5NWezwf)wqSXbYX92HBH{ zyJgJ1N@glBgo?btjU_RQNC)MCgUl8lwOpJrT}aUW8FfQyQXp_b*&ZR4nPPZPf;!Hb zNOBmbJa{6Z6|s$+5lOpywk){n+5%}{3T6V-a!BGgG=Yavgt@3Wl79(?G5HY&xe6B_ z`a;VK{{R?b02*Sr3Mo=xDm66A%wUSHRfs{G&em9KQwj+zq$uxEOL=00v}q75DbI4X zI#tDS>R54@+Y+=f1@KVjSNHBcGm%q{6EB2P0r*daCLK&R2TU<3@XDcnCTQ!^1`;aD z->u6+UhH0@g#%b3G*Gco!IYR`qQRDY0qXD;H2C6NXeL7y!sMe+kMav&k}J#Y2>>v9berVpIl+6DWcp++so&DT&Nd8l@VA7-JyM*&egY^DLsS8zMEDB@J^?7Qz4t zn58@*Fi}GuVO91B00000009CK0}v7+K@%V`QDFpeA}}*jk)b1jGGc=N+5iXv0s#R( z0K05Xg*#k-1C{W7deW*yI zf(v1+pPuF5N|8>4&IrcYD7$nkFySQZ#IfQ&&xPuP@P zOS-Md#L`YtkIN;ADIGV+qXSCenx8xTjTC8hm1Lh{BQ`8XYRN6iqHBEr0J1k*nxjQG z$rtvbc$BFQO-JRGY>MFv3{XRY_#AyQ_+zv-(9y8Fb|^?qtf+r{l0zJl7A4Z7O1lyp zWsh+yVx)$331Tvzv7t6N#rzVBLMyV7MG-=Z%?+W=j#57nQZW206C2LQiENf7nvF{Q zk&-0$$tyx*ihm5IyyZsuBqBLcu-OUt93xfv9ahm4hYRpg zMIwZSlNouppBZzOHqm6~iwU;3N7MaOCW&GwiyjY>#D@e$G?|B6SdwX4M6jaCq@66A zT$a6wSeIjEd&%U=G>bYh;O7ZNa}mx;Zw_mkM827AD5_>J(@s&8l%3PGxiGM2ZNE%{ z$5PXFx7?!gx@gp@&ZColgrjDMUQpDBhwx~U@La`;kg=jErn6(QjG`!Ao?>EPsk?q@ z(4xf#n<9~0=N~5~ukn^xu^6!zIXX(rOjj?qQG78_eP?mTIEDZLD8 zr5!txgK*K+OO5bJ^f^~ytsb3({!1j2LNafU>Lff7=DH`%4Q+DwBavj%wBF27$kI`z zrtFX5S2At))plgEJ8CscOJY-f+2~&EUxtsCd^CK&yFMBoS@5v({_OZz{-%5?{YRmZ zZ9n$TT@F*(OMgS2DbvtfzubrAh`&4ikl>p73JD~NMoc);a<0Y~ za%Ml~%j$D$FE&No{^XXV7>np-@Y+Ua^O2UH!2Y4Tm9%Nipy92b)nwkC$jwr{2VP9s zVB=m4EpA5?)=OlcBrdJDqA|s(YrPX9$jd@MG0vBBo<2o89FXSUc>e(DcV9T+J?)ak zId)>lku8MY)LZ>5zwKu;@Xmi@)b=^hpUq@cUX`fQQ)1nwB^H@9G@NSovPu~h9}1n* zW+?oT&~U9#=W(SSs+iqLvQn`%@Af@NuP3Q4(EEwx{R`-G>#K47#|HM3JsEjI!z&g9 zn$$u<<64xw4l!Mil(Ei)kdh^%-&QLc)Nw{Mxm_7#>Xzm;lx}Kzu_X=NU(lXibYh#M z9y!n15yy@QdAugaJiV9uJxTY9Vo~k#`#psFQD-u=p9|p8p{R!M!6+x#cvogPYq@3U z#_brMoMMyRv`NRCOFcO@DMmXb`;v;*ubKBS{vO@Pj3VW>h;rp#{s}d_nDUP+_hQQX zSfy)JQ{6H&{{Z+ZeYF$Z)O`&O%N&NH_b5d#966d|Y>qa`VC7PG*m-2}a#E|ZO(7-1 zHntn99kxb~O+C^fiE3PQ&{i~sDX(-!YC|v0BT6jXxp$(=Cn2}cqTg|1k9I>Gdu!2FJSKwh@b2A~>^GebibMv2KbnUeLP+LNZp z=A2AUQdY-JYDO(>u+#82PKNp;4hza(=t-Luq#-3ems+C2u( zhmi3}39%t0Muf!Jq_rhCuDvfwe&jOpq?XpKa!!XRw6rB+dLB(jv05Cz@`()(6iH!y zifC5MSX5QL#)m2#r1!2XQ%@!7rH@1>p*`NGWzf}|mL;W+a`?qP*v0(b5^V}dp}{@T z2*xtHAnw~Glfh;1MY1{yO`*G5vC2M6(CyOVBqNpBkmS2+C_A^ojn+gb!;nd?8d0Mw zrZ!dg5=d0!S{q$fP~vjCITPGTE;3}^qIVR;_%ZQ(8?Gr3R#ZsxuE?D9*nDWzvCG+> zs_@TRB7F^+C8rD$-3yCcFNZo!=d2rfB!-se5*{D9MY z?=Rh}ch{=ES9MkO^>^*>PXMN}yplWs3JMCK_-_FIZUVvqaPaU5NC?O%D9C8&{{{{= zCMGrx86N(>LB>KtN%C*9(6iIi{9Cg8oSgi!8qyNd8fJQWW zLYYFN!az|2ps}D}u%P~q07wAWJ_K>Y9dw=>c`{PC6v zC$@B=%Ou7D??x-=rtofOyUviL0J-ludUkJ*^}QGMFDde4TmitANfUA3lY)RIFT1ZM zzv=ij%MU;WSM|mal|o?lo^umyYDqaWdOhx%;NZFMFVn}>z{jn`iYI#IQ`S&+p}PX# zZ!SW2y~rG$r9Sa-ANlnnz6{Qw;Kw#clkb`m!>)^U<2Tt+uh-odeXl7>e2TGoI&M=- z)F*{qiJM0Ogu+X)Klqq^&B-YQaB3*TW{^~tgmcUv+X1>>tY5uzN z?N=9VhT|*qoIEAXB+RYe3oUa@~J?nl+=AeZPP58l?Fs&A!8)u%lPA}0JOvo%huE(~%|^WnDi zsD6I|I=fCKu^8LlyCzej52U#&1$wPb1cfr&Uq?bf>r>R(2|JMw;8m+_Mu#3RuX=( z9mh-*DM*Yni^VJ5sp*WohuBO4o6o9M*qVy5?YZl2(B}S8dI#4?y+}|Jyh;UW<4rFP zUnsatLtOtx%{ir=L8CmcV8vvfDCd_CCg*wS8!grQasK|x8W z#h6-ms;&>WK4k$WvId5cvhmwnTdLuH+Nfgs;}4Io$g5v2&AkqobWJ~p@CDmxA3I#R z*xK)DD%@9nG=VR$+VPQ=uBvlpH;Cv=jOrIo2zO^Ukk!D5Qmx)>di!$zU2|AJaAJ#t z45kku+ibryOf$JwPuZLW- ze%>;^5QY-m1c0Sg_`JKFBs<<&fTZnh$sWiZXd7i@$ssxL20pbJYlTZuMR4|`0!yf! z=GJD&#M2UP<}BDZGM3P^8j=q_wj~p_+JT0vA{XT`7D4VA=ZB`rA?U8qiU`_?65+_Z zw}%4)ZTfM^jE6cYJ^}S4JZ4K9WKEBVku)da%qBFKfk=>&aAEq0z=C_^ddWc*#kG7W zrPS$#RLOhpZZN9zs3g=0q62X)-31(&P|KCz9cX$fh&Yh8{;ah>wrE6JSh8@bx*Si) zyVH4PCjLt|5M=aKYlPAswNxzxDm$LmD|v{2VPQaL?$R@aK4CgY^?MZod1&j;%L@{M`iv}f8<1`}W1+rUQAnSDgpo^gX`8fDvPh^gMKAFO_G+n4FXrvVwBmK{m%n>{t~JX<0HcRmU1W z20ug*$YIY79*|IQU0rOB=<$~6gr(!Xbq9tQ?Qd+zF)|9}g-(S%LuDO3kXbQ6+N{?d z8<`X2BNx$zj*uavywtK~<)h)jlYSM2xn!`hg?f2UoYD<}z+W3TKT*!&%6vk~Tc7JZ zDw->mtN{X0zLI2kxHR}FR~P|UO*qGYh!Sq3%ZI5OWjw@BKiX$V=O!-UeW&E0 zXE@I}wl7Tm_NAy)l+Xd(U>ik(pnF})U}z@*VP*f4_hV+;LM44Y@2Z|dcmK}-b}gd; zjs0MqU&4XWq40`aEH2M+aDZX+kra?g**xof&h7z zTsXzj{3?7}JzCgjo3o2FV=;$s(t^)#{B#lTN%zgX3|jiQI|CoAEW&?;t{rRa*?!J1 zz%@>e<2v;l6b~!4?91%rRMiHjE1!CemYv)XCR!jQ@;_y0*6zLD zof{rImiC_4Y=di|)>-)U;Altd7Hg!kODH+F6B1$VM@sVxI&RBTQ0Z3ETlvME)@_KJ zh`YCPyO*3voD~{ax0XQ$JtSgUy5DPKpyPhXRGxk5$Gu6C=3`aWi=I(cFG$SHfSzhx}R$w>yG5xdL% zc2XA)v^ImHU6rj+f@9n+iF6@QPuA0TpsYZP?XD({iNmCY(d{NcNRajje!S zT3)EGGm9RuS52F_oIaTmU<1ZWR&&?}HJVzNfL}kA7es(Lmb(fK?Y{Cha=0Pe;`Jw? zixg%0v83f8=j6{R zNRu6o!S9U<%nxZQNwK$jWm(`(>u1Dps`ib@fRdm6+$BA0Ir8<2T6!_n&P0f6g)jIB z!NzOtIe$!YBDaneEAWZ|Jp5DIC{dAmWN0*7el`Iy$(i2Zn0{!e?WT%JuTG}P3io>8 z3?%gNr4gWo+?9qJ=U33YXvU8ZjqBruUtg@GU>%~3lMgTH|sDzqxn3ELKrx%xj zOW|Bml=2B2jX2aFQmE96%{=@RY!ilakG<444g`bd2&>~!@NYaZ!d$j;*+*hpe^zAD z1?L-H0(0dC128g6sEOI5S4vdvuW%8&3Bc3P⁢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 + ); + } +}); + +export default ProfilePhotoPickerContainer; diff --git a/limestone/pattern-single-panel-redux/src/components/PhotoSlider.js b/limestone/pattern-single-panel-redux/src/components/PhotoSlider.js new file mode 100644 index 000000000..f80023a1e --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/components/PhotoSlider.js @@ -0,0 +1,35 @@ +import kind from '@enact/core/kind'; +import Slider from '@enact/limestone/Slider'; +import PropTypes from 'prop-types'; + +import css from './componentStyles.module.less'; + +const PhotoSlider = kind({ + name: 'PhotoSlider', + + propTypes: { + changePhotoPosition: PropTypes.func.isRequired, + photoPosition: PropTypes.number.isRequired + }, + + styles: { + css, + className: 'slider' + }, + + handlers: { + onChange: (ev, {changePhotoPosition}) => { + changePhotoPosition(ev.value); + } + }, + + render: ({onChange, photoPosition, ...rest}) => { + delete rest.changePhotoPosition; + + return ( + + ); + } +}); + +export default PhotoSlider; diff --git a/limestone/pattern-single-panel-redux/src/components/SaveButton.js b/limestone/pattern-single-panel-redux/src/components/SaveButton.js new file mode 100644 index 000000000..67f00a881 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/components/SaveButton.js @@ -0,0 +1,33 @@ +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import PropTypes from 'prop-types'; + +const SaveButton = kind({ + name: 'SaveButton', + + propTypes: { + saveToState: PropTypes.func.isRequired, + saved: PropTypes.bool + }, + + defaultProps: { + saved: false + }, + + handlers: { + onChange: (ev, {saved, saveToState}) => { + saveToState(!saved); + } + }, + + render: ({onChange, ...rest}) => { + delete rest.saved; + delete rest.saveToState; + + return ( + + ); + } +}); + +export default SaveButton; diff --git a/limestone/pattern-single-panel-redux/src/components/SavedPopup.js b/limestone/pattern-single-panel-redux/src/components/SavedPopup.js new file mode 100644 index 000000000..4813268e9 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/components/SavedPopup.js @@ -0,0 +1,34 @@ +import kind from '@enact/core/kind'; +import Popup from '@enact/limestone/Popup'; +import PropTypes from 'prop-types'; + +const SavedPopup = kind({ + name: 'SavedPopup', + + propTypes: { + saved: PropTypes.bool.isRequired, + saveToState: PropTypes.func.isRequired + }, + + defaultProps: { + saved: false + }, + + handlers: { + onChange: (ev, {saved, saveToState}) => { + saveToState(!saved); + } + }, + + render: ({onChange, saved, ...rest}) => { + delete rest.saveToState; + + return ( + + Saved! + + ); + } +}); + +export default SavedPopup; diff --git a/limestone/pattern-single-panel-redux/src/components/componentStyles.module.less b/limestone/pattern-single-panel-redux/src/components/componentStyles.module.less new file mode 100644 index 000000000..53380e800 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/components/componentStyles.module.less @@ -0,0 +1,3 @@ +.slider { + min-width: 360px; +} diff --git a/limestone/pattern-single-panel-redux/src/containers/FooterContainer.js b/limestone/pattern-single-panel-redux/src/containers/FooterContainer.js new file mode 100644 index 000000000..a512d0c15 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/containers/FooterContainer.js @@ -0,0 +1,47 @@ +import kind from '@enact/core/kind'; +import PropTypes from 'prop-types'; +import {connect} from 'react-redux'; + +import {save} from '../store'; +import SaveButton from '../components/SaveButton'; +import SavedPopup from '../components/SavedPopup'; + +const Footer = kind({ + name: 'Footer', + + propTypes: { + saved: PropTypes.bool, + saveToState: PropTypes.func + }, + + render: ({saved, saveToState, ...rest}) => { + return ( +
    + + +
    + ); + } +}); + +const mapStateToProps = (state) => { + return ({ + saved: state.saved + }); +}; + +const mapDispatchToProps = (dispatch) => ({ + saveToState: (saved) => { + // Dispatch the change to state.saved + dispatch(save(saved)); + + // Add other things you want to do when the state.saved is changed + } +}); + +const FooterContainer = connect( + mapStateToProps, + mapDispatchToProps +)(Footer); + +export default FooterContainer; diff --git a/limestone/pattern-single-panel-redux/src/containers/PhotoPickerContainer.js b/limestone/pattern-single-panel-redux/src/containers/PhotoPickerContainer.js new file mode 100644 index 000000000..e471a20a9 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/containers/PhotoPickerContainer.js @@ -0,0 +1,26 @@ +import {connect} from 'react-redux'; + +import {changePhotoIndex} from '../store'; +import PhotoPicker from '../components/PhotoPicker'; + +const mapStateToProps = (state) => { + return ({ + photoIndex: state.photoIndex + }); +}; + +const mapDispatchToProps = (dispatch) => ({ + // Dispatch the change to state.photo + changePhotoIndex: (newIndex) => { + dispatch(changePhotoIndex(newIndex)); + + // Add other things you want to do when the state.photo is changed + } +}); + +const PhotoPickerContainer = connect( + mapStateToProps, + mapDispatchToProps +)(PhotoPicker); + +export default PhotoPickerContainer; diff --git a/limestone/pattern-single-panel-redux/src/containers/PhotoPreviewContainer.js b/limestone/pattern-single-panel-redux/src/containers/PhotoPreviewContainer.js new file mode 100644 index 000000000..6a7a62b99 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/containers/PhotoPreviewContainer.js @@ -0,0 +1,43 @@ +import kind from '@enact/core/kind'; +import Image from '@enact/limestone/Image'; +import PropTypes from 'prop-types'; +import {connect} from 'react-redux'; + +import css from './containerStyles.module.less'; + +const PhotoPreview = kind({ + name: 'PhotoPreview', + + propTypes: { + imageURLs: PropTypes.array.isRequired, + photoIndex: PropTypes.number.isRequired, + photoPosition: PropTypes.number.isRequired, + dispatch: PropTypes.func + }, + + styles: { + css, + className: 'profilePhoto' + }, + + render: ({imageURLs, photoIndex, photoPosition, ...rest}) => { + delete rest.dispatch; + + return ( + + ); + } +}); + +const mapStateToProps = (state) => { + return ({ + photoIndex: state.photoIndex, + photoPosition: state.photoPosition + }); +}; + +const PhotoPreviewContainer = connect( + mapStateToProps +)(PhotoPreview); + +export default PhotoPreviewContainer; diff --git a/limestone/pattern-single-panel-redux/src/containers/PhotoSliderContainer.js b/limestone/pattern-single-panel-redux/src/containers/PhotoSliderContainer.js new file mode 100644 index 000000000..34f822421 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/containers/PhotoSliderContainer.js @@ -0,0 +1,27 @@ +import {connect} from 'react-redux'; + +import {changePhotoPosition} from '../store'; +import PhotoSlider from '../components/PhotoSlider'; + +const mapStateToProps = (state) => { + return ({ + photoPosition: state.photoPosition + }); +}; + +const mapDispatchToProps = (dispatch) => ({ + changePhotoPosition: (photoPosition) => { + // Dispatch the change to state if photoPosition is not undefined + if (photoPosition) { + dispatch(changePhotoPosition(photoPosition)); + } + // Add other things you want to do when the state.photo is changed + } +}); + +const SliderContainer = connect( + mapStateToProps, + mapDispatchToProps +)(PhotoSlider); + +export default SliderContainer; diff --git a/limestone/pattern-single-panel-redux/src/containers/containerStyles.module.less b/limestone/pattern-single-panel-redux/src/containers/containerStyles.module.less new file mode 100644 index 000000000..a8e5861d6 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/containers/containerStyles.module.less @@ -0,0 +1,4 @@ +.profilePhoto { + min-height: 300px; + background-color: grey; +} diff --git a/limestone/pattern-single-panel-redux/src/index.js b/limestone/pattern-single-panel-redux/src/index.js new file mode 100644 index 000000000..164498fb9 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './main'; + +let appElement = ; + +// In a browser environment, render instead of exporting +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-single-panel-redux/src/main.js b/limestone/pattern-single-panel-redux/src/main.js new file mode 100644 index 000000000..93f46c26b --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/main.js @@ -0,0 +1,22 @@ +import {Provider} from 'react-redux'; + +import App, {AppBase} from './App'; +import configureAppStore from './store'; + +// set default launch path +const store = configureAppStore(); + +let appElementBase = () => ( + + + +); + +let appElement = () => ( + + + +); + +export default appElement; +export {appElement, appElementBase}; diff --git a/limestone/pattern-single-panel-redux/src/store/package.json b/limestone/pattern-single-panel-redux/src/store/package.json new file mode 100644 index 000000000..3f33f7033 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/store/package.json @@ -0,0 +1,3 @@ +{ + "main": "store.js" +} diff --git a/limestone/pattern-single-panel-redux/src/store/store.js b/limestone/pattern-single-panel-redux/src/store/store.js new file mode 100644 index 000000000..0b1a5fb96 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/store/store.js @@ -0,0 +1,39 @@ +import {configureStore, createSlice} from '@reduxjs/toolkit'; + +const photoSlice = createSlice({ + name: 'photoReducer', + initialState: { + photoIndex: 0, + photoPosition: -50, + saved: false + }, + reducers: { + changePhotoIndex: (state, action) => { + state.photoIndex = action.payload; + }, + changePhotoPosition: (state, action) => { + state.photoPosition = action.payload; + }, + save: (state, action) => { + state.saved = action.payload; + } + } +}); + +export const {changePhotoIndex, changePhotoPosition, save} = photoSlice.actions; + +export default function configureAppStore (initialState) { + const store = configureStore({ + reducer: photoSlice.reducer, + initialState + }); + + if (module.hot) { + // Enable Webpack hot module replacement for reducers + module.hot.accept('./store.js', () => { + store.replaceReducer(photoSlice.reducer); + }); + } + + return store; +} diff --git a/limestone/pattern-single-panel-redux/src/views/MainPanel.js b/limestone/pattern-single-panel-redux/src/views/MainPanel.js new file mode 100644 index 000000000..f07276bd7 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/views/MainPanel.js @@ -0,0 +1,66 @@ +import kind from '@enact/core/kind'; +import {Header, Panel} from '@enact/limestone/Panels'; +import {Cell, Column} from '@enact/ui/Layout'; + +import FooterContainer from '../containers/FooterContainer'; +import PhotoPickerContainer from '../containers/PhotoPickerContainer'; +import PhotoPreviewContainer from '../containers/PhotoPreviewContainer'; +import PhotoSliderContainer from '../containers/PhotoSliderContainer'; + +import car from '/assets/images/car.jpeg'; +import city from '/assets/images/city.jpeg'; +import mural from '/assets/images/mural.jpeg'; +import spaceShuttle from '/assets/images/space-shuttle.jpg'; +import violin from '/assets/images/violin.jpeg'; + +const imageNames = [ + 'mural', + 'violin', + 'car', + 'city', + 'spaceShuttle' +]; +const imageURLs = [ + mural, + violin, + car, + city, + spaceShuttle +]; + +const MainPanel = kind({ + name: 'MainPanel', + + render: (props) => ( + +
    + + + + + + + + + + + + ) +}); + +export default MainPanel; diff --git a/limestone/pattern-single-panel-redux/webos-meta/appinfo.json b/limestone/pattern-single-panel-redux/webos-meta/appinfo.json new file mode 100644 index 000000000..188ca4236 --- /dev/null +++ b/limestone/pattern-single-panel-redux/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.pattern-single-panel-redux", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Single Panel Pattern with Redux", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-single-panel-redux/webos-meta/icon-large.png b/limestone/pattern-single-panel-redux/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel-redux/webos-meta/icon-mini.png b/limestone/pattern-single-panel-redux/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel/.eslintignore b/limestone/pattern-single-panel/.eslintignore new file mode 100644 index 000000000..93c033154 --- /dev/null +++ b/limestone/pattern-single-panel/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-single-panel/.gitignore b/limestone/pattern-single-panel/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/pattern-single-panel/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-single-panel/LICENSE b/limestone/pattern-single-panel/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-single-panel/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-single-panel/README.md b/limestone/pattern-single-panel/README.md new file mode 100644 index 000000000..b19eb5708 --- /dev/null +++ b/limestone/pattern-single-panel/README.md @@ -0,0 +1,33 @@ +## Single panel pattern // Profile Photo Picker + +A sample single panel Enact application where you can pick a profile photo from a given number of photos. + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +#### Enact Components Used +- `limestone/Button` +- `limestone/Image` +- `limestone/Picker` +- `limestone/Popup` +- `limestone/Slider` + +Take a look at the custom component `./src/components/ProfilePhotoPicker.js` +Slider controls the position of the main photo using `handleSliderChange()` which changes the state of `photoPosition` + +The `Popup` component is used in `./src/components/SaveButton.js` + +#### Running Tests + +The sample includes examples on how to use unit tests with Enact. To execute the tests, issue the following command: + +```bash +npm run test +``` + +### Photo credits + +All photos are found in [Pexels.com](https://www.pexels.com) under Public Domain CC0 license. + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/pattern-single-panel/assets/images/car.jpeg b/limestone/pattern-single-panel/assets/images/car.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a8fa4a97354722da62212c1130acededfa89ca46 GIT binary patch literal 29446 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⁢>`-?tT>!{QVIfB9`}~C&`V#uIFukbzLvR9+NGWM4$4>$^t+)weJYeH%_0coR`)eeyy?|)Cvp!e6Q2>UO$u|x2utbR5~%gYT^mHJao$v71y&ZP0_I5ySu!s3~I~U z@QJ%r`Ve&l z5c)TvS#WZr6sleq65R>>%S}n3{+pZr-^>&MfPsU8hJ^1g6`5fARe2rFada0)%{s>~KgL*6)YrE$m-`xLXLlOg z*tPQYT&`nkuTKxSzF*s#JaP*u+6?F_8{7*WcCqKNhfn;Ng>k-Qpx+ilq7?7xAI0OD zW2>~_8D^s_q87YddGDU9tIFyfw{rM@VCUOg$)f{Xc-x~YW#93s?3q*|kLcTRr;e&~ z&zyrYxAuS2dA`&`*fBYqe2>d>8$Tl=M>zT&n?HS(snU)5ssC=)@pHW(H?8LMe#qHG ze2-FN;zq(KsP^ConWi)|Ua#$(&$;FBT&0QWK`dOi!1^avWcF`W9Mn>|Vyq-v7qaCA zECQaD+laa}7ArxHK20GcQO-JS@aurxlw1yB*);hi*eB)s?9zdtkaoRw|F3Z5~ymPv+pLaRd&hByo zrDwe9f=>NcpQ`PC{50LgO0At>VVH0RuOIU-<=O?)j49@s*8I+NE(r$24j%Kd`^AoNHt8sItJcmKk~&W<&_a~51R1oHG-DXl?oQ$<{;RJ4DSZB4WhcZw_qi8%s6 z%&tQswi3r>zZdd!B?{`E7ncJZidzJgI#kJH&cO>D!}J&Zh}YA#0w&fqBs?oEh<`|k zi|UR}$=Vpg{lG6jL#7%<@I-K!gj&-vY`17`-+Zwi(oMeuVT|El02Q}%K1@W+{+%Bx zs{Qm)0Urx5SiNPfaQ1U^H>;`Flzh^Xr*Kg)&i>uZw|QgQ1n*xf(PwQBBqQwL3Z~l! zi(Ly1D2$XWhh7C0tC-N)i&N5_r+%$Iv&?g9-*l#>e4caWPj8#OZ9i%kP_^q5O+hQPkTU96^HfwNv?y7JqPTZBe3A2Ti2n2Ywx_>Sv# z%G1NuSnGxWjDHGa!~7S&0MO9TP%yCnDYE~?FIXsOH~>5rHV!ToCLT2cJ`F7;7ab2T zpVa>r+fZb{sIsWJ;tbouzs{?u=nF9z&iP*aLh)VYVvmw z8Fp)BXETVpTNMZ${J9y_zqueSB_CQ~4Oi)G5<0V3`^~MD=O{~cqxmRk8?ylay*CSm z*EFt3d4`=OHoYWu@+deN1&e+xN&aUwR`a`}9LvdwQn2#6ds-f(C|hOgFM$6B$b5+} zs-4!^LaL5ai~Dj?CMUE!hr=(B%(?5XW;b!kYrY*@6+A@>B$7BHO^|h`NhXat(Zk4I zU}yy&8&0)kEu;oB*ra%gN#V4fy)E^halQB)j-4G$FQ$1=JYZ>h(tf z?+dl(;A)vtlANQ+t_Rp5(2S*NQH`VIyTFG->LvF>_w;3hNa}Wn&aC?U_8gmY!r6^v zaQGM7oeq_Q9&!(w>H0TKt#jrOphp2&E$fH9sJ=<-sTb<#aZnQd4da9367dRY|I64J zX@bH(hmIdA2qy)wDzSw&9^Wq6hIk%YvHl`Xn>SzW{R_DE6}_1yEzn@1$dQ#r!jA@K z6T#w(IR%VP2~l-c*P$r;qE7QrCCIrNPzPCm%?1$YrPrN}C>brxVHn0FPJpt!>`|-Es=rrB)olz0S93wbH4nSB_-->Z81__7bQB-6m7? zc_@;DD44VkZboTTJb+I-p6EIH6<5G7(idyIrUs);Mg3}L+g^h01t40j_e=o?Gs&E{ z=&QD`->V!Gsg77=Ea>?-drfebKjll)ivmsZKaWxiDelQ#WblIod&iqQx# zAl9znmzX5(7zq<5&$Tc}O6X(jy=v=XsWE$Yx)Y;1X2R%_g7Dx}LRW0aF%&BgUYZK{lE4v?#XBaB8&C(~JmO zi85qYt(9asAPPgDSY`Y$B~j&sgu(kiAsqP{99iX?lmF@sI!X)JKsWoI)mb#HU)yT9 zF`8Din*tINozcb!JWn7!NznfoHO$u12C>(|w&)hu=BR|90GF7d+cF~!D|zWucB;Z- z*%cT;;wV$5zi~f~7&$gKAox>Eh4j0=&i{XY9<@53tp5O3Zdp2N`miqJ-3_AjT{K%xy1T zuC!;zD&%AeKX(}?fHlt(DW+3BlxV2doeb{saXBnmDd)@n$Piw&eGz?W611s9+u0P2 z5h#1*w)m>3!f#j7&_K<$sUn(nPvSGg;ZwWv7=iKahE9Ck=f-N^j;bpyfVsL5Q@0g|zIG=ZPUf4b?;ICekn78SBvw5O~?Y z{tbn^ukEPIF8VMSW@63&T4PM&98T#N0pvTWQ(eV(7O^5n09>4CQt&i40MfMs0paG}*YwC#tS8;E1>fSvJ?R?OvX*f_exWqxf;lGgW609zQ z`uQIAOM{5n0!HC3$E$M*L`SQ0DI1Uqa^koffu1=}!bmEr1N1`PY?3uHxYoV2bbkTs z|B1x^vD`iV=fy~gOepdTcTilpQ?UGu6Ngb@vvy0-`y|s*m*_%Lcy0v|Z>?clOc#_; zR~>P%Es?4CEpn~;EDlbA&z|^rvA(_Z7ND4sYuf_iken+ZGj;fKeu{h$jrZJ#A)nN$ zd!;?Z$4~f^Trt(Ibwxi{-K?Q91x+7V4y1CuG2QiZwW zrG{b@uUpjKcQZ5)*m+dyu28==L{6f^T0^IyT&b3*nyb8M>Y+0ChBY6?2~a7Ov4JfjF^QDjvF6xjbGC^Jx^r?bNuor_PpK~vEjno6+d@zO!O0ipc7k= z3tVFg^cyt%c}&O6Wx^FsgTvJ>dRR^K(4-GZdKv^s7iS+ zvoX`)*Cqf;#*0USR+abSox?I#u7MA!vz+J7KtA6Qq>-{*^ zY?igCIKwuyhFV*pusbQ{F|0!&v>k=wVf}}A2ElP<(Fg-BJ?Toyux?xqZr+BlOY0+2 z+}4@ma;t*IJuI6I^h2)KZ*7)kcaSTe_io!ZOvgwe3MpMEumptk8ZWdIi zvNFLv4@aJ5RGUAqp`IBTlOt_ya_RSXKMC>%W1@99HC={;^|BlA9qYB*mq+1v)(vaL zjK9?@2XT=0X9fFq9{EB7h0aC?X*(52P3e6){{jeGW9@N9qn)-jYK+Bd)-$#ftd!XF ziOY!O2zwkrOKz+gHoVZ-sFfY&s4NIF|-4l(g!4f*Ec5Du(pp*dL%GpM0$(J)`X$)@Z>lMA= zz`^Y=LbOO)u&-8D@8F!XN2=%r!z>l5>8GpKFI1Kb=MB@xRb0Th&bCd4qizYeA6HOQjBEcw`WB{O0>8o3ys<$~%)G&6t682N{3E zuqd#Rp5H`CVN~@p zCfa%BU92meQDJMqtkxIStR6kReXizNA$tO?Y4`WyT?70COFovqg$@)q?f@qlMY2x> zhBHx++__flc*re!zx1G?!)|tT!n6&K-id~%K2K}4&Xf|)k%>pZ{Z~di6aw?;e(H-r zr_%vjn-c|q%Y6)x~4~7I68p0-KS^US`&FS8bwg(x@xHY0^9^#%siu0A9U1| zU%y9{KTC0mDrvtSjv$X0=%Ob&w3b&a(vsI+t$oIRoFz;4 z&gw%1^0q_kG8zuM>JJ>;ZyRv#YHi>VsuGtpe-ou#SuT7WMdM5p?13b?ed)oqLK7Io z3bq_1EJ%4=W&(_3hpSVR)zRQp9ka#`pTQ*9!0X+!rpUZM8EMZ;b(F1e-R*$)y<8jR zTjc#}6cF>f>Bu)%@rmEJ8C<`TqSq00$($-daElD)(BoF;$020pL>6V43=?7NA2A@S zmNxF68Dr6bmwmjEYH{*B`P-(?*v{f zm(RW=DVlG?-uVYeFFvUux z`WJu|a2#2yuBNj=pA~56?lN^0J7|)V)tkK^%hP$zLa{579(sKpy1NyZB7DPpswVv- za+rN?6x!vj2Hd8z+E7=`>u<+{U+K8?Nn%SKE}j+3jPG~_CCBjNU;)-7ffC%>c>?pct-J+|`vVxkxJ$WQ3pF+#YFclHY8VP1+pJ~mu_=`$*x z9~ed?YykBv))XJRa}jXij`Jr}U%5YI1Ua9mD_pxGVWhk$nJxWEcIP8+;P54@d09T$ zVpCV?hHim?pKmc`7Xy~_j$Le83|dnqKSvthw>B#qIIV=w5Q#anrEWG79Cfce0uMiE z*j!ak&>f9bZ#npqaYq4hZ7it`k*TU@N1de?hxu{F<%*u&$J%28wrXI~Wt%WZdyqrN z6|YP!olZxc%DjmkE*F+VazLPAXH=_60IrG2k510$%SDnLS@p~qLFz}g&rx%OI=4UG z*ex77SJHXgSN(16kJX5xD=JtsH@1i1_rERZ7A#X#k$;nlZ_?c`>5bm|BkLty&1Y~4 z!DRglPy_xhRGsuSb_A|Z2s+wYp5ir0;U%c)GwyQ$yc%eEzovegMgl3YX{!;+ zl_)G4)6I@8EycN1RFyd*@_IDO^7Yu`N5^;w6s~HNe18EIm5Lo%dU<=&V}xS7zc*udQ0x|4#AADSD7VM+7qIe2V^MgAqk@T( z`12@-y4wbFajaXp`+7=AM#;elyT2{s*FY4_m?Ppyc$0Ja8>pbRRZus^IXK;$+hfNj zphsaKm$_@Mkv}PFP zys%ajAwvWcpW0z3uY5xu&}eeB!QEYQm|6NL83Da#^32Bl8 zIIhrTvQ1`VZ#S!))k{ZIe2DdrW+408$+(>t$gG(OT%9ULthi2yabnx#gOhT#6Wq)U zT;k4uR_Jl$4Mcq*YP5~iQv8hc{spI*WVwBXZl*BcTX<8A3l7I8R-TG^ZFrH&^iOFR z97R4%sy;vMJhW8x(yI2Cj|h6;QMB%wNRI@J>@s=H!^>yNVmg(T3gc0JpvUYo4X9|B zcWh3q$Jp75r*Rk9u(_imJJyz_mZYEg>6WZ}Nk&dawuKSY`kFc-C5Zwudc`A@fK325 zyFZ7e3HNGr>^psBnj{2u$CpXv-pVz+=qpW>Cf%%*oV8v=?n8sCjGb)yvBJd5>BJrZ zb(-(N7g0mBDSY6y5l^0nx|cQ~F||2KPQv1cLd2(6Ps2(I-BDNCTfW9td+XnFP$krD zaa~1_ypa7DhNs$%_I0u|2je(a0!w4dkJwt6u#7W{t>5MQRG_~A(Y?fZn!pJz0AD*6 z%UAhUtS@6BjdLz`mKUBgLBGu>s5ewHoL#E60(41_?VN0P#kO_ra4MGg5FOa>c|Wlz zf0rF&tPL(|MXtuY+V4R=Zvi&ji!$yaa5T`S6s(3C-{&T4YxU))Ih_6p#CsZ=W%8Nl z^C2_e%r^&oo_0Gekg>Rj>^_s6nO=^f6witQg<=BdShi??cL_(Mud8BJl#N>%lM5f$IaT+Q zAfxHL2V1TRpO?`F*uu^@|6YFw%^s7)CI$Rw`&Z2c==~%nJy#1aci`%kY@*}ta=B&5 zrH@VH<&)En-A|2UJQh$23i>`7S&i_bodvRL^yUJE3HP9Ge-5XGnLxXcQNy>arH(8b zsYc7+vOh?Y_zLtm{54;o7}m66yOwz{#$L2!RO?P!T!Dts_~mEgi;yb?wA+7ud20}b zwM#=M2@jaVhmR)Q&doKV#iQxhBKs);QIbWALo<$@qIGS?k%tgFHt^mmh-@yeZ)tD>0$_3q6X7)moMv|?Oku#IhilD~L zkoAVdt&BT-PxMnHg%)3jMdsDjR0bHo-icMJl z^Wy2qZgE-zHx8O7+jb+VJjJgmFUc+8t~FiEP7=(}h4li#sHt5>rbFj@TkjKEslvYyT=2`+m5xbE|Y1_V28NlVAe{$;lj=2;kd;(rAkkp9{wfC2&2x=HhFIJ_j?6uf(SN(t@0(du(7J5sQ=}hHiG}y-b)j@reZGs&f11%s z0`lm>%_I?GD_#d+CZRLHaML5kZJ#|AKowhB>XU@TU8~R~9g_~BWo69F;A7&$z?sO4 z1IxbvT)sWk`byW|53y<(>nLu&j~ayk0#aE^2IDTn#)-_<8t)85tFbQJF-9#j@6cxm zI=@1cC}afFm|v0Aa&WiJBEb7Eaz1}x1n`SShtDMBv40`1QS7X9P5crvUcO}M-X|+d ztK+Ia)i3`}>18PSEw|r21}u8!P~niLCuVzgYfa@Iy^7}evd+5K5J(m+z`U_cPeT;U zb4~d+Z7Ws$D{0$E+@9F4D0{FMI%Sk6$Jd6v;Ka@E&yS0UUar?~0u^7K%NvFvaD608 z-)!$#Xo6^Oo0@N`AutCXGx&K994bcOU-jnPuf5hI#XYnW%J|U zX=4g}zEeRg_GQ)FmX6$04$BMGWvFqD)M=7l@oTc>*^++1$-V%|WK_3q1e%I#osR6V zg3G~sFV!eApjGQ1=uXB1l&vkdCnl+QBg@2ghpZl4B{QU5IlGt21XU7cP79 zaVxI9oZq%j9$h93dtHOLVtijejimWb{{`S#d(ZAji(2w1=q^i-K;BlfEK(fB!CLG8 zP(C?NV}6@6ao@{=azf)NOw`}%gVeOZ#>2s+X6|9a(1$<{BZIooQorG(2iGJ!C)DER z@fHj)*%$1Ns4!JU{!NIe6;7;08Oz3vK}%>Ig(hC?Ic6$I*ad}INaqA5y0rch`KelY zv)g$a0z2P0Z&SJe%UM+l68+{74crjXzFR8hjElM3$S94ggQV(NQuao`@gA1yg=B+- zA6$oQ+aN|w5S1_iIN^_tuD&mWg};Qz&UZZdu3#-~V^W6geOuAwD?0uK{MMf=MjhI; zci>X#O`S1L$(fz2bv6};c29%qf!jqdk2;!=3H&^4v+vw<_-sl@-xZ1Kg&Iao(VAmZ ze{;z;SyKBXT7J^|v0i>DpVmR7qH#duG%}@s)G;C29!qx!SMtg5W`f&d zzjetwV@B1hz8P_NQ$x(N=^V>UD>A$!1U7qAj&i!pL+VC5?i6#BhevcX?6Z%Qn>(CgOdHp%*(h0?j~n3k4>velI4d=mwV!fW=VJ1!)VV*SQ_yP6;850t zlCc_sPNB633 zm+`AmG@CuU-p76RxEE1Bo>LmgFa4Ycq%AkXjIsQ2+jS6G;AYx)BQl|vV@Bfna+eD8 z>~Hd!X=o@Cv!AOa_*P!uki4U*8fWocP7;HP^SN|gD=^Lxfp+_qHOnD^%k2WDTGZFo44F)HfwUiZDISZ$1Wnzr-`r3pw-mj?% z7$ThXwrp{pZ$ANA@DUI%{J&NEfFgTpta7XIgpgx(a*qlbbH z&@gY?wQ;({{5897H<{7xi+8lYLjcagT7Pv@t)wc5{pYxFtOm4m!JlY%jl3i;A_OG$<_x}?H} z`ukFT-vn$02+d%$EFw3_0)Kc_Xh33oY@dEN>V{jez_OCRy)+Gt&~e0qZCz_oArkK&B(?~*jEL=u z(otzUe%IG>(dUEs9G`!_;SnvCP)I!nM=-%vYja8C=%O{oUz8LN#II|F1Q0{H;S)f5 zJ~{2A-T~(cZn&!qV&!W2v!Y5P>KIl-I}0!2EsLbn_S88?FJ;Ua=rX5_=n9HP0})pi zTK=JLK24RwCm6%!RX}B7)pa+&u^t8bzknQ#BTOa5#G=jvcgxKgNM0G7TJ3snH9^}e z-}JJB}{a*Z*b9HLPP?#ebsKh0@IjqRb0BB(H9NMqBC z=$=mIjcDx4ZJg|_5XM~6P$pSmiLYaCnI@uDm>5XWQYdk?&!WGqCKlMw$M={W5S=iD zk*l9v3A)n-?^=p7@=4Q#$w#O{2sBp|j|Z$xIF zTPE6dR9HkC8P$G4uA8=YQJpgQ;*@m3uQTl)=ty&eJ^1!L+jpc^P|pHz7;k+6pjZ^F!;AIULBzMb9NbSDV)p6d0EW%F?C!q6neM z$w_k2?z6E_5GxTPU!3(DSsb|&3UcIE#Qe-5KEKbFRt=Zmx)l&fSAt0~9F;Am^!1JV zu>tBw+Z#^(^nkrM=Oc%NEA+f0hd5>1P0+ME{rt$)b)VDPb4Y&fD{qX0*D|*1=?#^K#R64b1}*?bL7pWnekzO;>;NJhyD5Y#HeO%1S5m-G-pf9Dy2rzO4jXz>cHKnru~AtTxsRemWvfjY5_2iu8fMhiQ4@ z^tjxWcz{A7x9cpm1WSyw4J>Ekr4*r1U_(M0|J7Qo;aA!UA;^sH%X1TX_zda0`nlgS zNF(?D*N5=Or;f_^Ey7&Uj=un-^qvf>WS;2-Rj#yY1i7NgAHa`h7T=na#>BiOTPJU) ztm6F-)>!;DN0uaErfq)6L3)3JZYo#MEQ=-ekCf6Vq$?GzD8}jD(dn7fd-pm29o6hK zA2bx5hL>CVrB3mJuNbLi*j7g>Y+9d=?>rm^n-o+5E2;-t2Fhhwre6@N1-wCG0A^j8 zM0<#3TkGAdSSRB@jqwm?&W4CIhRk$%kZ4?wo!G{Bq40SpZN*Op>Y>dh(T< z`#$?^Jp%_J-n&&s1@0gsONx9tAS|6)n-5`fNbYyrG>)BDXC zyXYi52_FZE{aESMYY7@TLq#z(xId}I&st0_EuXI3R9k+0`BpM_c4B9 zAaQ-gEB*fI0y556BL{{0cy0LWn!eTcPR_v~nm8;iBoj1|9%kSBWqLG9(oh&$;YV?@ zYKcm_4g7k5sD0yI(Pw5!1Zl>oEQHRcqUL&oY{~9i!i~@=O4`&E$9M%QWm+S#4ie78 zFW+RaEN0rZ_SMsf4gJB;&oqBr=TdbvBGG6W<=tFp`^|3d{Hh$j9EKp|Z{0d{UO8`X zyrnz*FzOd_eVk-@OSG1#T}Ald{|m78bf@nyYwLKm|K)#t5|qvGMy7}`%vI*j%g@{V z9g1L|oR@F>-BCSYDFFD@u4d{2P4YQr25DN@qol13~}jR!OV2%8oFDIDrtmSi{|^eg%oL0P@+^`yI#gEa{9v>D7$WOmcBtUJm|J|ig*R7Y8S1vbxrnA?COsqtOhLYe5 zrFC_piY21x;U>S6rnbGUmZ3UHC!o{a^c<*T8(~HXi$BN23(q(GY2&<`vbVK4#;(x~ zf2P=yP2MN8ZqJ>Y3}q*hnUcy2*-)djK5cxnn({9oR^$%=IjxD*pc4AfnK+!Jd65=N zfd-a!z)K%lK=`;QF%t1e3ZHGl#d0QSoa+-n{X7cr(95d!r_86Q z4lNx^e+Lc2wPW~=3?}*MGhWgSN-ptdk|a6M#*(W)Ut9SP_l)%j6ED#vy8!(^Mb=th z)FnW0>;n#>asaF8a;Z)+dpf)8%I=4vS}ZAMu#O`M zaIHMeMi_G_5;t#1L++uyZG#717XBxWzc;d%Op)Wc@Jc(mu1oD@vE5)bF8scZ<}{`d zlx|oMx*qj|9IBTv-!(HGmSVFIGZM0s{mSPkrEfS`Cp)eFLI>p7+;8>;sPbMWl0P7Z zvE1zscwTy+;#=4qbjaDM`%)xVrlkw?E3ZCc5}YpTW#%qQ$nLAzh}8L;3-o;STc=@! zxd2_1X462brDnd%>C_v9p?vI%yZpLFOK72!Vb()G^%B(?(LlG>-7$a|xn2>kR8I6i;7+be9uzDQ3D&um!^@PStj!xN(i67#6QQ3)Frs*g^g?t#$-roH z$HHs5&4;X%*+`!7-6l(pA^y>q7Hb`*O^)0u#gg|H@DEn2Q|n%#k}WQg2a0#|J!>m7 zpirUWOU;qN=Czf~;+I2V$44Jythhh!GCt=_z{)EutwULE@KVGB|PD9fR_U zFIMlw!PjTm1oyjvIpdWtKoTy%>HD8ws4Un#CYqS*3JHG!YqV&%v4wR|)2oPR7UeK3 zEd|Q_c=dAE^l1)tNN`_e)X0y}dg6s+Yd2+fSmMBC$xxa@FM0!a8aX)|haM(xgDa8K zBDLWQwem&argC5`C-q}7GYXu8&E#iZ8mc;^$CWsRsA5|ggD8q$ln(NkR88~WjMB;R zs}B>15I5e zHggFjamov=p`1pHv}+_g$tC%TG==lL?bj@+jdX zn+w1PC)$!=s1<5rku5x(P6>m5P*-w)r*3?td!+8TL0q@DHcQE;%hk4tHyH7Wt0^8p~CJ9gx4yb7>hqAKW@@~P8-C3In`-gF8D#{zS|J>{LnEoepN-S*$l zc$t_F@4o<#APeCMDse@&yO%%w3@T6a1T$8TK_CE{P{f>X&ay%>UO@3zEiE@(z;<_GO7BRIWWp6ho3jzr-7}-5$`iE#Lz&S zq^;yO>!c&uJ|)21(@r-2KNk7XrZ&N{330?EiTlGwL~|;4e9rh+_3Q4P7H@=$l(Zyt z1xmCLOK4H@X(5(@6}of^Q=bijsotwrh-&b9$_Uz3dCh`FmJio+%)zig6DY+X$dfkg z8=L&09q;23Pw9qn38ijCBd+1PtP+!Da2TbHWxyzJ%+HkWH6u`Zx%u2tUqM>n`$i6M zGC7yaU0x; zsvC;DnUjAiMXsg+vA#pAAx``3E-@1PMdX$FqfVRRoC<+UO6L0W!Mk-uq~`?ni}I+8 zsHekKII|Ty0bi=S^Et82XL-uCh$XX8?H1ekAm|i|Y5RYCjnZ@Kdz9q|DKkc_8%5#+ z+?C5;KvE@~zP4cDPdF4Fipg#*s4%R#ohBw~lTv6+47HqAAvDSJ!P^XtEJ$-?bBb4W zu^V^^nvVdF#2J#9k2&Qg3oVK!KhM~`>7lV+9&HpXoLse%BA^aOzk$ZFt6|O?6fap{ zL`7xrv`8t}=q^x}!j$mfW;Oh>FyNXa0Gx)8t0)QozQDr5DL_6cIFZ!DO#;hISj^B@ zY0Lo26}ItRpOL{oxNTUhKY!F-xFa^~rfyxA#;~qbrGd*qhZatf{vDC87$(-k5tR3R zyVkb3Iu4-I6V|K1POj^80anY_h){_0#Q+6IplQmG6 zpy?VLS6_?vRR~9Dc~P1U)o)@-&QwIkSH?h{@g%uFX%gRv@ zcdVM>P12VcN9RetpMY1yO@!~BiBrmzzc!Ec+W$uXiK|wDqT)fTw_);-*j=7Tx=W>{ zXzBA_85=v()(%EZsgL!7iK1YauiCEX_QTVPxTdHMqvc+#A$Oa{~_{=cY`!(4|bZ~Y$tZa|U0h*qh?7vcbsw+N;CS>rYY9qDm7&u1>Gq;(sL zhD23pl!EKIxaZy}aX5J6nlUJGms1wL(NVg^6k>668vq2FTI=7>>NKQ8So1ddn#@#c zcDZVBgo} ziDFKcu#(>gt;rrF{{XnxqED6o0NQJ@{faF4u4c+}_EmIsy8Tf}>n)q} zE|naIVA}X|r%zFc@}R7sn4FRMU;afP3_`dl-VQB9dRb47)I&y88!#iI3(@Q)&Cc5! ziXo(LV5K>c&oyyl?V?HH2Sjc_^s9DkXa|YG=tUkPJgY|@%Ke$Ycw{_mNf#Q{A!h)j z`f!qUBc16dkw8R^mCCqn4NUO7*;+!tt-1M%08cou=-(o1E+yVnzupGx-Y-iRX6DIY z<83I&hwYh&DQkgYz3WILkbYW%8DnJ%zyZl=5tiYc6*j&`+WKorGR|O?lpfkG06fF3 zCvOsBGB6>axZyv4#8Y^h4g#BUZL76l0U<%imKqCChY$!c*rrPsVt39(VbdeDYaw|f z7CI0%&GMxP2`&;qt;WC}gGK_M^B?ggZ(2Yq5Du&hZ)102ePKuz29HY+(*juk098C{ z7U}60YYpwW6>}yPd}UAlYDrrcgErY#MP_dR7MuGJLW`N5OUMxFS&u&eDiq2=juQDv z`|=wL{dy_*3X(u$iZtEWh4|`dB>wz#f_hvE#4I^gWd!9@#0eJL zl_E_WwZPSZHnluYBQ#y9xO~}4bfr`XB51+OprWM|>2Z{e`fpDFiIyyYf=FVf-0ehf z#QwvrNVdvMPPus-aT8Yq0TrO?~sQj6b>wd<`UA;OluiS8Gxf;8^A_tdG8IMf50#EoyIwx>lI zl~+)pK8LEckFt+x8FgL|pq&qcS%p95KjLN^knQXSlrk1n3Z-ts;YEnJtH*~CDF6lH zZ!%eELij8k%(lDSxISPCAN_U)>-bHLBMb%rWjFoM*T(HdEPxihlw0P1v4_K;C4(rC z4a~1>)izfRmdU3qysE%b=S@za8tq-yMbCt%NAepnEAIrB#ikLREoXbfUP)9W1YusMHg%HHGY&>_`)bQKwS1KleD@5ZxtJ zu_JrcrEH71Zj1#yPXu_lGzCG)D5)0*Gs5~7j(D{~4y2uK8m0#=^Pfj=D&uBRV`97B z+E6+Z+%H5iBFDR5Wieb_eXGZ5B6ZWiQ$?hPDZh=}xx>%y!g&iH3{TR3FyB zQ@&qGk1y40(H_D70I052zrX%yHJdMA{{UKmztoXuRnFGT+5zKHx?=>-DG`N5BZ;|! zc?yDK*|NDLT!Q0}C!IW>v?;ud-Hy4nJkHeYV=ltMV&&q-mPd_I5M@xHCz zzQ)zsNft=ds3wr64I~#lY+Y~UD~dK0$TTEuM>^P4a&s$`_@x5!6$Du6a6@TKGwP<* z8CK#(E1~3d6(Y)|izy(H&2^+KnQm-I=-L`8B+5Y}Ug``^Wka|(ur#gEgFx6@xLS|Z zc-@o2zSnX74HS#tz|<`~J-DA$Bmz@Q+ge;uBw@sXQWO4P zD#{&i`Hg8K4-(ZhV)ij+?%$P6%m_gsU{`z5c@};v9LfcaIFB7PXYncdRm96506EUU zS8DN`rBd=kq10|hpwUQiX^A2x$dfKY4aSUmRKUlO+;HCZ)9UQw?L$a-$!njfB2~?E>dJcN#++hd8kyKHdTKraejj01Zb{1!32c>-`8#T(o0|3pal~ z4=O+3VK%hQ51eWbu z_gz6+Dv?Ja5uG1kPY5(u7_Bt<#!#hl0aFO3PSZG!_61k1jWe49YydhEPP$V{>yT$4 z+pmon`xljSUd4zP>q?Q~F!2OAuWPd&K$Ag#YE)dgZ5jY;vzHf$kw+D_7pr!XfH`NT zUczYoWRMGjd?}k=0mI(ZvMzze>k}AbnHRNB<4@j~4iIXGocWA#820OxxJe zl2pTD%S6azgsR-zVpm=&Wf44lDZu)Xr5c|SCRGSX3M9)T9S(xN$LRNL$8dz+qY}Z{ z$i~^3O6gJ{yV+=_A9uhbb(tYqs_WO0?}Hx{+tl_z-IjqDbQ4 zY078LS(xP>WC|A}&9CsJScQqT&AI-R#C;%=$e@smahi*=s;5?CO&JlAIx#gaA=g(s zU)Uv>pl#!FzRjvZ&krC!$tH$@4X7adDZm3MHy#F} zY`WUV#dM;@eFy2ut3$VaJ&u9RsnWpMgG|xsnR8piLr)+-XoBQZLt;-x7pVin6@jrT zY;RVMV7B$v-tkum99wiZrGOG*U<|~KV>K$_q+CInY{)kP*1nZtB7ghmUXpw32d$Gj zDFbcoQIdTqS$&3`B*a}rKr41+f(X@3VVpxG-~gt;p^l0S(Z=1P@f|=Q(jcBfk+xD@ zLkytUf^`+z3?v~~vi6ZRn1%#cfu+qwlu8F+noH@6az9ZEgT=@#u4w=S&@1~oDkg{| zmG$zqVWNJIE3n49-o>kE5m zP5cGvhGsSdir?x_!mMgu?#*xHU*}QCp}Q>#@pU_adL{R_KsYC#N2h+EM-WNB+=H3TrMWcFm9&@F&HGgN_yy0x_0lM&et$k>~ZG&M38 zKuH-;sAF#H)*wsT*+Qu7&a|LkiL#5HwIiI&faFVz+$o@|g~6hl4?2U9pCfk~ z#JC%>+M;{d$cjxuS z%q_)G%Pf#sF$zHSh3i~X#LC1Bqf>EXMOWz=K)*ZD%_y43)A69OC;&;DiLHISDB|b9 zNegD;bz<7oEYBmbh$%99T2NqYRNPVwf>x1<&V`8Am90-`OLD$YGMm;?oJylh2IXo+ z5Xg)&mKQcB$t=mOWpzahvQ+|e|(Z~o}LC9}K1WhDjT;YHABB8LbIlSqDTSLs( zU?(Xs|mY(c+)p=P}^>0xetYIo@!NJlxJ{{R~&%8HZpdD$aodQA30R?Rx=WE_qR97lt9k zZUF&BS$!ro5SIvm8`;|Vh}*3~-I(kNEtsjey1yoE7;EG!oZXvKd-&3$ zA`&+sZ{vE08WKFKC|72^luN=5BeYSoGL^bFG2$y+G{K0}<+!C&7&aXAHHwR|7ey1O z{JJ-~gCs;UFd+AeGOT0?&`hL$Jx{RKHXCXJ%^usvY<C(fnJTMrFhOq8#3xC;lv;YPxBX5Ey=r$BTEw< za}*o10idNNJ9)u3$S#T9dW1U#bSwx4`ch4N-I@TyohB+gp*wEW3)tG8bV5;zolTB| zT6crA2teV@wPKc892+A?t--xvrI8CRSPAnPXqJtY42-I1i#^4vIWn^;Cg7W2Eh5d@ zsh73YSlY{G+L#P<$a2`m@tYklV`EP{{?1r2eCiuETiEwjpp#-Wti7`Uj&ci)JH>XG zndT9>xKyz%W50zv!6ug>11`Bbl6lm}Gcw7o#j3|ncc1~*_C0EHe}cnH04g}!IEh%2 z5NmT$+zaHr>0=H%A}r$|1cq)Q-h1jsD8*HY3N!&1nF5~MWgbHGSA3-EHZ{e55v7H% zNZ0h#A1a;B+1CC7qHso{=Es{7#)-7z;PPGRh2;xv4pk<<{#hF4IZ#@r%RGY0GIolf zlizF9a$+V_0Gzk(tYn7ao+7dH&6t3EG^p~Dr#67oD#vaJgwaT9LZAIx_ zh#Vtd0c_QgWrh|SDPk@MaHcOiOvjmP3S-#kJ6gnxQbB-+BFMo(E6nq?Sjy+vD_qCL ztM^Mn5Xc0{s@vH>NESzq=)(51riYbEtp=I1TR6R&dkR+(lpXa1hQ&i!$5m|zsiU~y za=t>MI%mU9(foI~GHGl7se4c?8Rsbc3FvV-7sG$lphof1*v<5BIbG}%qw5Uu&6 z;inlrB_gomINfCe(%)4ia}@(v*n+3Vk~E!!hh@3Tn8`P2go=i$-UN*LL(Y>OJ_Hmr8 z$e%^2)#6pQx*OH6P~t)T!mrQ=5G%Il=wpN>Aop4Pl5n#>|Jn z@e0aFymH)lHlGnkYLEf7k!Pv46O5%dJV7X3W zP00WgZR_mNL>&Oi00X5-*+&aSW@7HTfNA77%srz4Ty{kFQFg@Oq~IlkBMlqMu|2G6 z^S%2bqRUf7AVVN2k$|uQ`kI|e5=)$nbUoEJ9TkCW#Y--?u*w0Y5QuFgQL)Z|fJmq< zC=!Wm>DpLqbx~oZVqwD7DIw?|E0Jl(X#+c&qaPg}!WPI9+ zbWBQxPsthvF+25T~lRFcalYRs7; zj^qSe3pE+yjz>oX-=&SLX-Ovc1d?r2M63pQ@-e5x*;K5B4aLFI;Et3-s8;KG$PM~Z z*$H#EjV>NQRQ>R~^)!x{c@-LLmuu#*+}I1+h93+YhWW__Z_`6pI|>HGH!vwmi`-C9 z2ByFYy8&gWVTf2W0i1N_YH}~xVU%TFu4*XU-CGJ#yv=N zyts9iDHcGP4edlniG+-&F$i*idY!5^k&q)2p{?m#O)5zB(A;TjgHy!8vm*%;!)B=D z8Lo^CyedH(9EGzdgK8;;ZYbmoHT$ojsp4lhG3HHnWY(Dr-?TJykcQ*#7n-d(v5V&+$#!eFJ zOFXeWuF@z~?AbwHx8<&s^DJU0%u%bfk_ERtE_I}4#9`Uue8Yj*>_Hn^)bEjFX-Ls@ z8Vgotn>(;lLYuPp4yKBQXC~o|h*5J)lE%=NM7b6O>$bd&5=dqs>Md*3IC%1AY@ich z2Da9Y9te~v;adT#4b5gEz%e#8W1q4Ejh2i`Puk9T+>>B5sT9nsBQQAty}W3m499Xw z)~r>57b7ib&kUnb#fqky1-~+C3{zv&M)$NrYr6CCAeuP2@lhP@b{UCd;7vPz(E^Ox zAtbdjiP0`J1e0On1xFgTy+9`5)3U-#4VzN6+AzF%FJv_yCZtS9pmkb8XgxOLuDxTU{$E_Cah$QX8LeG-J;Sx)nD7-%1*xAPd-58bC#Z z7~FM91*%Aw2t%g{lrbXfSZOcBgv8!jifG;VWk!tojSWW3_sZh`00Jo4n(@nV(Vtkj;|j`Ik%FYe^>7 z0C?6OOX?J@M<6^|M!pmyl2&B^0148(nLOtib)7o3mY7zSZR8ad{aY*ge8IytljrJ14#xJJGqMMGup!Z)oCC9 z0FiP58KWqK0xBghaN$WrP=$u)UP6v8Ic7)77{>jZ_=}b0O@_ru5|YdTXb=)Fmi^U+ z!{MGb4*_z>shsm56Z?EhE%c_3`yLBSr$BsTb7&bO(>8Rky*0>N|Fs>Frl#>lyY8oDtVg*HWi2%T;~M1 zmk^Rk;U13l07=oNl5n8`)l>@lMdxDC;UPBVb~;uJMkTWbF0Mw(xsBqygMtofKT!Hf~Bf9jJq;9Zg3pO=O-h#1B|# zMPlI7HcrtzQ+f_tRUrE{qQH=^#5MJ*8BgCqe-+_11eUogl>Y!Gl-xdxls*y*k9e%N z*JD7n#|^6oiT*woGJi5~ABAGmnuKxWY<@H-BWd43yK}DEUaWag(xZ*pikBkHO}nZ4 zVA8APb>JR1O(0&>1z~3mbpt@8 z3#}q5&e%~W9EB8o>y8$XXVD$G6Q>B<#i}eMA#PY{7|M%ZNTwoIei9b@01qKpMvaDu z5RwC24;lq@FCGImlnP|L7e+}QG>F&Tj_OG>I3kQ9uiNU^3W%)W}VXv+HW zJBBw?O*R&1QjTM1iCCaEeDrqruXU}YaF~1W8Xt(aAf&rEg;^gacC{8p`z!TnTM)Xm+ znn?1JMTNro3oT3(sdI1|{;1TiUiPdgxgE9_Asy^11u+Lc7Dj?aCzmRk%6l;*G$b34 zP+YHxT8KLhMuctv<~ykqwNe!b&3glVsg<w8&g~&$3!O>Q#;z3UQNZTu z7_y5B&{*=;g6C>7N^I=5MdmNe(z>>cg5D!TL02}tC|>8rvGT35$Aw}|wanZrZ!=cz zqU!^Y2H43P;|I1x)6ELjn-ELXhuWD7+=4;Uu$Y2Lx^`{im5sw%`J&E)@g+PUStp5;z>#t9qZ@53ZxQ}sP{{GI z8Pq>OHZ_P#Xp*w~>EezF9Fe7#q>B>}Ln|YINaak646l|>9E+P>4UH8Fs8zY@bTrM{ z0!JZA;yD?Jw@S2(u`h+FDPuf`?yp+P){S%lQ&#h!ime`PfCZ#9NAF}?XUcd|=lt0= zUjbK$?lJ{HQ8nbNx$!!hY4J`ApG7yR*eC-nv)@)x)1a#=l5=To>18qniZU8deG~)M zJ$ecbQP{8p4u-*x<6t%&1xJJo7DE?piE+4IN<3>7rGSCi2daz0t6xXHx<;PhD-(xr z-D5@9xsIZulPS)JDe*(6v>M8XEKYk!AJxrI24b&c+DFUt0Zft0Vg_Rq^gPFPWtka$ z$YrZ(W6IYa%12zvNWI%p{{R#-g^@X5QRKqD&5Dmv^kM6#{p za-aqkWK~nX!M-Aa$pbHRVNcGBGUPvsG+{_%Tste>ly*G2kiw%AeH(^%cM1ZoQ*%-< z`YHx;LZX`$H#XMP@UPI(rg96aIk5|zHGpj)SJ;JRQA-65KF{J z_Eb$A#46h$Ay_E}{KW!gVH}Rdf}##H%w1|Sh2zk3vWsuXTAa@XiVLi&pkCaKsyPff zkxuvYZJ`7U8YVO`u4{!XTEuKYHQHt)wNUR3+@RuT*Q4MfPhHI0WOS_7Il_)|P+ zZJ0Wr9cjw0jBY&YISvvR#WJHaNpr$DNgf1iL-s}q3lbNyOR(w**jkItAYLK?l0`YL zG~oxWV@hTZ8^YJWr=doxu^<||v2)N=QDI<-UB>D*=ns7ZiN!U|#zZ3E_wp6?Y9Wo5 z#lG<)-f3iki-bN!p7ff!>sZjL{k8(c)(7t1*r*HuWDaG`26lMf@tM|rHw5+K=4*%Vk4a($G<1zgR03k!-Q;_cm%v*Iq{ zv|=^zHd=L!C9~U5n^9PLKdH&BFu>^H1B#LDd2uH!;4ZE56{&?_m;8jbX<$imI57GiZB!kty~vfAfi ztz;2{!*i{>t5oDItw8B?mMIG<9U6j079{7{E>S{h=Qmaa6LM}f+}0{2Mf*q^KuO<0 zAgcyCu3!KEWoqk-}kIJl+EZb;xu~|$q>64wz(UX&F^-mf&gQ~t;5ZGZ@sVY zCZdWp4H@9gYZoAVG@=tky_v^9!n82hMfAxGMwy7;UW1vaaFFp5Km%;-d7gk*W*C@Y zMl9Vz`c2};K~v89ON-(?!L(821!3U-0I;XUuEwF%@eEq~CN(-g`9~-==B>2^X5sW3 zxE+l;x*oztv*~c7k@BqQyej70$9m9c{RbK2J>5J-2@$el;@0Eufl@4qW*0I@ zT3kD9#9uFSSJ}u%;naahW3AhD#)_NPpmCKGKUqFgDt3|eIOyy>J83w&|00*QPevXP%mY^ zf`m;Q1yOse6beleBrU1SVkm+nH{RB{@;0VKS<>X5&EhvElMNb}RFVzS`dd7&L-C1s9 z!>QZDuYb5uiZhc59`^hF-W6ru+5yYDomAQ&NOxTeA5m)km|R4N0}a9`)F}9xlN5h> zE#rr|e)Coz48Od_O1@F4vinZ8guFSX5LP};GU3+weK?Nm;nY>)EEJ9<2J7Yx23$B(&mq&q4pnq~ z=f^9LK6J%z+VVH-wQQDUL&N;fS+No# zLcE6x{{YFOAJLI^5Sxa?H>ALCYDw_fq%{ z8eL#Rwwtl=q=`@* zb;`S;?@xs+$>>Y&Zeo^5*r^8K*J}~%=1Vgm5_P;$H{V_8FHPf^9i13nza<7Q1oX2W75n_J~= z54&0^G;X>J+!CPp)R|>i)y9P_Yxi=fRr?I?r5WQH7#^nD8p#eTBBr2DEqnB2xT5Wb zB`y2J<6j%CWLIT7u-97baMQYi4r3X$)aj|Bj?y|Nub#{Z6!S#}OUUZ1t(5SaY-kgE z+g$Jhebr+Llm6qgdx^DulyOD*R4>AeClX^|z=u+Fr9_(y0|hcl_Kz`Mif+`?mrw%f zJGn&`<{5yd4J0Lpr64(hJ( zni+H4ixttfWNCb=Q$CMJbIEP3Nfbz(7+#2pl!Lr- zYCMevMr7tAlT|;I&~?uQ-n3?fGOFTLPo%suRJdpXSi%+=`IX!dXm-)|5*}(Ur1(~F z1E;K~Fs#Z5?-iC+SyQ76)>UW2weP0h(O0xMh<$5u0phe3frw?wGbsvu#+4EyNQ$79 zDCWle$zAF$-C~&-jK{MG;2vd?r5Jae5t_lJKvPcjHH_>+P8|RS77`2jYAPrch7q7s z-g%m~a=pTeXO)->fTHHI;V{VVb?qc=7q~AoNA1W2-pcBtvwqOb--<sh9QB@suK_f{5ppn>%WB-Htiy^$!&`AVMHD2 zT@9Ih!3UA*4H=@*fC5rRYPSX(H!~QbEui6IEbE5tcEoi0p?g*!i&K-(lMYc zpd>;?B}oK>M?%#zzCJ~hI~5lhGV9%oRyr5nD_B73fd>6&0k!BqAaT>YROa zsj$*TCM`e8Idc$t8}2EhmK0Ph3Yl$Wx2lUsuI$-Gfg;|(DGNq2lwzfrqJlY_TIZmq zEi8=3RtlM~%o0rj96gkL+5SLK?cB=aXvJD6mko!vq<96olR;ol+p!n)*dE9p<=v?t z9V5#j^f2rC4XI;LvdT16QFx>O0NB$@ITGS+naiFS``ptcY}p92$VH2efPK{NrCBqC z*F+kc#A4?{xd&?$XKNiaJlc;eJ9Dh49NOVnoypygd8zSkoKL|XwGJJeb|ON~LXA;4nAd2sWf#y3+;aqT6wa%Vu9C(@+B5S?5aP9q?#NBb_cwP#U92QLY)#|&tr_sH zq4~#by8Mk5U_l#$S{-Ppwqdf~#Q0X11ahv=5P*wsY9Bdu5AIcnJ|c{ZHXSdzyI6z#)-`PFT9I5& z?yXB2^hxut-KG2Wtun8=v?TaxM4`%0J6^j<+}!==G`h&=kk}eOv`rojJyEQ!;G&j( z$FftZJit8iccN^gywOD^AO~BLf2i{`{gDV1eXb$-cYna6hruf=#Kf9sZ<4tw)9+MHy1z3Fp<%HX?!v)ORQ>e63A3AeNlv;V1W3Jo>q;P&WSWh#`C_ zQa7`OC^Wx1e%8`)agX9j$$u*IprM!-H*&oxBSmXvD!TpAx%1kDb_-?-Io#A(Xu>Fr zYHR5nQMP6ahL6SdYk5@IhFc^sv9KJ?VKA_vcaILN$~w8sX+hAoB1`#cSdr?GJ&RvS zbqJ5}HK`ujXsl0Z8PIae#d^cYbf&<89%*@-Ayc*X-W~zPULkI%ZY$y z{v>*PR;-gpIsvLaq^ZT$YijhaDEcG2b5=w?dRB(R@YUV?YlT&qe>cZU&lDY$f5nr9eXUoLcg9W9 zEf9Y@QHKW-#c`;QLI+lJN3$!6#q*Hs8Xv+Bq-f8Jc4lozCsX2i3J%94J1JcY_a}E& zpiQB|N4G)xnzVVM!UJr>_mi;Xz1>X*e5i;BjwRVgK|*v~@#V#dOvbtq-8;~_A;x}3{sSR)mBW4F@9yJrh0SO}C zhznHMf}AHQ&2dX4Y*p5pNYo1twujXGOZa{jc(~ww(0j<}X&xuD=No9tVMhsz2uaX0 zXc+vB7fZZ+$lZKvx~tuPm;^ zp*N+UA1Q(&E~r0yCxGNT%@{C|h%mtFqn~@XGfVfRJ05-tC?mQ&htY*i#s2^uxA38g z`bt}KSg&G#K}c~cWVPYJuL)tvr1e+3b6uplOIQU9paYVq8r)N(dO&GG-oaB_9&JK3JaX8P%qJn@cc`$6e%lauzI7ZL-0xvfMl|gl z1L4l5lv^UcR2;IVg0LzF?jV+S@dCoWk(k86ysj}OheG>~VRtpFs-S@0f>hDM+ zAQ>=;?@E37i&3yVs|g`|%E}T>?A#<%BW{dGvXR*qL48#0X=RC3igCwrui{z~!?m-g zhe|QX$Fq{a{ubm#7)p*Jat>LWQlFLgUWS3*GuN7*n5bj08HQt58`8-elyo{8cSQhy zn-{D2m+<^3V&XaV*TbQwVZHc)+#dQ>omxnVvYksW>MOOv^W7A1p9(qqOm4xYVO9$qpK5HaG`Nnuj7%x zhwv%*nlobLV$G=p>U>RPfGVPBWIlrarn?LzZ6uAONOdRl6o4YnjeQYRUc~gG^0H6# zhxJE?{a%_$9J8^xVs2RVCYA4^IPwim#c7;y4_EOTFKgSMQhCr7r`3nWMmUVQ0O|(h z_X<}304Y;5caEMcYAkfc+E%mL{2-bcRJ6%uXC&o7HLw)TYXP9Fb~8)G5k&m&r9_^z zg8mismLzW)MGF4_si?}sOqy%G_N)Lq=8pbARLAi(eH$s~hKpm}YME`jk-ZhU)Kf+@ zJFkJPJm4Em5Y745Lsp>Tc;-QGD463A* zJA-Wq?y1@{o)usjIUZLOB!~dxOvKrTa|+8K*OBCWD??T$#+5M(wu>?gF!38OtmiAn zbXgNs@I4J18ne+7MhQQ7QIZ*QkzZ(~ANaBS)|Nm-@a>&=sGv{}eujyRk$<{1UodLV zhPw^Qojvt`q&}2P+~SMv8o#-H92vPwh&hjv)>&~cm(*Sb_ALOSy?6Ht7d`@)5%ipf zD9E}(KYITFprM7rL?FW{(lpR`vF2+zAh$O^?V%+3k|V0d4W0YR`>WqTC8EPerR`)< z(M2u?=;({$AKT*fBzS3iTwB~vis{uN`LzZh*qdJ3U+UEij^jk`4~FYPc!2bKMDF#M$kNC;9cd&$r7)YexXCX2%M1Z&JUaR++fv@-gH@Hgc=sg;2Y zHx;4Mti#Wp5-s9BVzY~>_0ar(=82Ike~A$Hves+%vGp3&qkN+JgV*Z~Da+7vHI)WM z_n#We5?k790bs~QnTo9!6f_||zc$uK)^h=1JF zF&NCt8yl)_@)}$p(dxHQZsSPeUS|IQ7N^2sSdiLJi8?gB!=hE*{lFVkwg43YfE@*P zvJrAP6Ri@=Nj{Oi18x!V`t3;BGYH6gbv&2M)Uvs`jfnixpVF5Q4y4(su}(`JH9Xs3 zC?)hkP{IzfIM;0@;<>SOA~DfrWybg!ek zyH!5gEPTC3Vzq11NQYE6qXJmPh#j^crfK8C0ktdZ1aV!I4&3Z4Xgdl-TtfRooCy-%fucSM1?`#hW4X6@3DY$*;2)KC$@<=1HZ*eIn*4$hyWq zc>e&Pp@qT3A;XWjzZNx_tnM`=>?h&a8cgYHmx5PexFUWLJM+JclxO?5)`g0M@ySfU_+kTsx*S`M%Kb>c7S*{f?>2>m= zUrz3Ta--6K14_5lG`_Z_WYR}rlk*KPK^3zkch}Z#ZA`pIglu(;W^enA`cXUF`>K3f z0hbLE5&4ZXw&a#RCa_RjSselXV{`GTTdra~wyZXrxiyP>ZHAEhLsXT9)6m4oJ++6E zF)Hdufn6(7b_0DWtS$$gE>JAGFOQ@v3ycEGJV2k!x*8Vxnk6=t2JK-y`^9#s0B{V7 zIxzIt<}0BTb82$sanw^QYlwk&{v>>x#B=_^bQ<#%%IlsN(nRVyj`2#!+2E5@YG+?e zDPwJz4bOhw8XB zaB9bd`;UmL)utc3nCcU`dbK+J9oDsQJ^F=jhX!QtldQcvtp(H0K`%t*E0nkbQ|u$ z43ZBZZStuB-BnlJP~h#kQjKb^@xKl-U&NY z{H?tLD|$&3>ZbHzQUo}wJU7@sPm!YN2#Q`c`Hw0DY-uHj(@rS+*P5DKR0Hg#jUrj53DGmIgsk7lMbSbEwdfF`;945N?%kovL`6)qwyLq86`JlJ6H>o zR!H-81b|f5XIrPNHMfmuXzQoc2^ZH;dDZaEX6FkXf0O}aDx1~wq8JcHgdN2KH>-T; zPxOQKYiq1S({IpF!(k)r;pB<&J!mwXZcc-Jd%BvumS*Ief#cNG<+&$Nm-n|pUuUAI z;*{vBIxQ81l#6DU@5*{Fb$-!_V+H~;LV=-sebo82EHQx|9R;I_bQBvRX8`6r$X!VB zv7#BY7Ys*sg!!orQDS9$xj_N8v;i4KNa59jv|_g-FL+6YZshYF&UHCZNM98DNMDchpVl27l=ljc%nO9^HS_Q#V-} zuhJ`u`dPX_qyGQ_QdT&6vm;d6=(B_E6@GmM0nGd=A}_02kRL_w6NBGULVoKID^o(o znlOIWBicvv6c_+zP))z;4@iG7qB)A}i&)<3dKz?)S_#dZe-2Kx@wnLk0ARWg5km<( zSbviKqjc~z(YUb&%qS5|(VZ`T$O21kQ0#mtybQhZ z-{JMx)`qfTl(^*}^vCN#)q})#akrmCTTzl%Axm7b*5~GEq(Euuu{saTepQw`v$ln~ zpU_cjg52Md_b+{R*n(oiZg1&5DwGKj7mfj;e)sO7kNQoDz(?4^G-*f4D_bmREQq=) zfyfG37+ywF>ZjCQPni{EIf|Yi#875W>Ow^`llD=l)cxQG54Bq + ); +}; + +export default SaveButton; diff --git a/limestone/pattern-single-panel/src/components/tests/ProfilePhotoPicker-specs.js b/limestone/pattern-single-panel/src/components/tests/ProfilePhotoPicker-specs.js new file mode 100644 index 000000000..6f9b2b6d0 --- /dev/null +++ b/limestone/pattern-single-panel/src/components/tests/ProfilePhotoPicker-specs.js @@ -0,0 +1,45 @@ +import '@testing-library/jest-dom'; +import {fireEvent, render, screen} from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; + +import ProfilePhotoPicker, {imageURLs} from '../ProfilePhotoPicker.js'; + +const focus = (slider) => fireEvent.focus(slider); +const keyDown = (keyCode) => (slider) => fireEvent.keyDown(slider, {keyCode}); +const rightKeyDown = keyDown(39); + +describe('ProfilePhotoPicker specs', () => { + + test('should change ProfilePhoto image src', async function () { + const user = userEvent.setup(); + + render(); + + const button = screen.getByLabelText(/next/); + + await user.click(button); + await user.click(button); + + const profilePhoto = screen.getAllByRole('img'); + + const actual = profilePhoto[0].children.item(0); + const expected = imageURLs[2]; + + expect(actual).toHaveAttribute('src', expected); + }); + + test('should change ProfilePhoto background-position', function () { + render(); + + const slider = screen.getByRole('slider'); + + focus(slider); + rightKeyDown(slider); + + const profilePhoto = screen.getAllByRole('img'); + const actual = profilePhoto[0]; + const expected = '-99px'; + + expect(actual).toHaveStyle(`background-position: ${expected}`); + }); +}); diff --git a/limestone/pattern-single-panel/src/components/tests/SaveButton-specs.js b/limestone/pattern-single-panel/src/components/tests/SaveButton-specs.js new file mode 100644 index 000000000..a28946e39 --- /dev/null +++ b/limestone/pattern-single-panel/src/components/tests/SaveButton-specs.js @@ -0,0 +1,31 @@ +import {FloatingLayerDecorator} from '@enact/ui/FloatingLayer'; +import '@testing-library/jest-dom'; +import {render, screen} from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; + +import SaveButton from '../SaveButton.js'; + +const FloatingLayerController = FloatingLayerDecorator('div'); + +describe('SaveButton specs', () => { + + test('should open Popup on Button click', async function () { + const message = 'Saved!'; + const user = userEvent.setup(); + + render( + + + + ); + + const button = screen.getByRole('button'); + + await user.click(button); + + const actual = screen.getByText(message); + + expect(actual).toBeInTheDocument(); + }); +}); + diff --git a/limestone/pattern-single-panel/src/index.js b/limestone/pattern-single-panel/src/index.js new file mode 100644 index 000000000..57c20e6fd --- /dev/null +++ b/limestone/pattern-single-panel/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +const appElement = (); + +// In a browser environment, render the app to the document. +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-single-panel/src/views/MainPanel.js b/limestone/pattern-single-panel/src/views/MainPanel.js new file mode 100644 index 000000000..45e72f648 --- /dev/null +++ b/limestone/pattern-single-panel/src/views/MainPanel.js @@ -0,0 +1,24 @@ +import kind from '@enact/core/kind'; +import {Header, Panel} from '@enact/limestone/Panels'; +import {Cell, Column} from '@enact/ui/Layout'; + +import ProfilePhotoPicker from '../components/ProfilePhotoPicker'; +import SaveButton from '../components/SaveButton'; + +const MainPanel = kind({ + name: 'MainPanel', + + render: (props) => ( + +
    + + + + + + + + ) +}); + +export default MainPanel; diff --git a/limestone/pattern-single-panel/src/views/README.md b/limestone/pattern-single-panel/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/pattern-single-panel/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/pattern-single-panel/webos-meta/appinfo.json b/limestone/pattern-single-panel/webos-meta/appinfo.json new file mode 100644 index 000000000..0527aac73 --- /dev/null +++ b/limestone/pattern-single-panel/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.pattern-single-panel", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Single Panel Pattern", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-single-panel/webos-meta/icon-large.png b/limestone/pattern-single-panel/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel/webos-meta/icon-mini.png b/limestone/pattern-single-panel/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/pattern-video-player-custom/.eslintignore b/limestone/pattern-video-player-custom/.eslintignore new file mode 100644 index 000000000..7de9f5fde --- /dev/null +++ b/limestone/pattern-video-player-custom/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-video-player-custom/.gitignore b/limestone/pattern-video-player-custom/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/pattern-video-player-custom/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-video-player-custom/LICENSE b/limestone/pattern-video-player-custom/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-video-player-custom/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-video-player-custom/README.md b/limestone/pattern-video-player-custom/README.md new file mode 100644 index 000000000..c903a4b1b --- /dev/null +++ b/limestone/pattern-video-player-custom/README.md @@ -0,0 +1,29 @@ +## VideoPlayerCustom Pattern + +A sample Enact application that demonstrates how to add and play custom videos in the VideoPlayer. + +Run `npm install` followed by `npm run serve` to start the app on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +#### Enact Components Used +- `limestone/Button` +- `limestone/Group` +- `limestone/Panels/Header` +- `limestone/Panels/Panel` +- `limestone/RadioItem` +- `limestone/Scroller` +- `limestone/VideoPlayer` + +The video data, including the URL, mime type, and subtitle, are stored in [videos.js](src/App/videos.js). For `m3u8` videos, the mime type should be `application/x-mpegURL`. +To enable `m3u8` video playback, the application uses [hls.js](https://github.com/video-dev/hls.js), which is imported in [App.js](src/App/App.js). + +In [App.js](src/App/App.js), the application retrieves the video data from [videos.js](src/App/videos.js) and assigns the source and video element to the VideoPlayer based on the mime type. + +This application demonstrates how to enable users to select the resolution of the `m3u8` video. The available resolutions are extracted from the `m3u8` file using `hls.js` and displayed in a dropdown menu. The selected resolution is then applied to the video playback. + +Additionally, this example shows how to support subtitles in the WebVTT format (.vtt files). These subtitles can be displayed in the VideoPlayer. Please note that HTML video only supports subtitles in the WebVTT format. + +For a more detailed view, check inside [App.js](src/App/App.js). + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). \ No newline at end of file diff --git a/limestone/pattern-video-player-custom/package.json b/limestone/pattern-video-player-custom/package.json new file mode 100644 index 000000000..9cc83c8be --- /dev/null +++ b/limestone/pattern-video-player-custom/package.json @@ -0,0 +1,46 @@ +{ + "name": "pattern-video-player-custom", + "version": "1.0.0", + "description": "An Enact application demonstrating how to add and play the custom videos in VideoPlayer.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Video Player Custom Pattern", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "hls.js": "^1.5.17", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-video-player-custom/resources/ilibmanifest.json b/limestone/pattern-video-player-custom/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-video-player-custom/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-video-player-custom/src/App/App.js b/limestone/pattern-video-player-custom/src/App/App.js new file mode 100644 index 000000000..41b52dc2c --- /dev/null +++ b/limestone/pattern-video-player-custom/src/App/App.js @@ -0,0 +1,240 @@ +import Button from '@enact/limestone/Button'; +import Dropdown from '@enact/limestone/Dropdown'; +import {MediaControls} from '@enact/limestone/MediaPlayer'; +import {Header, Panels, Panel} from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; +import VideoPlayer from '@enact/limestone/VideoPlayer'; +import Hls from 'hls.js'; +import PropTypes from 'prop-types'; +import {useCallback, useEffect, useRef, useState} from 'react'; + +import VideoSelectionPanel from '../views/VideoSelectionPanel'; +import SubtitleSelectionPanel from '../views/SubtitleSelectionPanel'; + +import videos from './videos.js'; + +import css from './App.module.less'; + +const getVideo = (index) => videos[index]; + +const AppBase = ({className, subtitleId, videoId, ...rest}) => { + const [resolutionDropdownVisible, setResolutionDropdownVisible] = useState(false); + const [resolutions, setResolutions] = useState([]); + const [selectedResolution, setSelectedResolution] = useState(); + const [subtitleIndex, setSubtitleIndex] = useState(subtitleId); + const [subtitlePanelsVisible, setSubtitlePanelsVisible] = useState(false); + const [videoIndex, setVideoIndex] = useState(videoId); + const [videoPanelsVisible, setVideoPanelsVisible] = useState(false); + const hlsRef = useRef(null); + const videoRef = useRef(null); + + const getHls = () => { + if (hlsRef.current === null) { + hlsRef.current = new Hls(); + } + return hlsRef.current; + }; + const handleSelectResolution = useCallback(({data, selected}) => { + const hls = getHls(); + + // According to hls.js, automatic level selection should set -1. + if (data === 'auto') { + hls.nextLevel = -1; + setSelectedResolution(-1); + } else { + hls.nextLevel = selected; + setSelectedResolution(selected); + } + }, []); + const handleHideResolution = useCallback(() => setResolutionDropdownVisible(false), []); + const handleHideSubtitlePanelsClick = useCallback(() => setSubtitlePanelsVisible(false), []); + const handleHideVideoPanelsClick = useCallback(() => setVideoPanelsVisible(false), []); + const handleShowResolution = useCallback(() => { + videoRef.current.hideControls(); + setVideoPanelsVisible(false); + setResolutionDropdownVisible(true); + }, []); + const handleShowSubtitlePanelsClick = useCallback(() => { + videoRef.current.hideControls(); + setSubtitlePanelsVisible(true); + }, []); + const handleShowVideoPanelsClick = useCallback(() => { + videoRef.current.hideControls(); + setVideoPanelsVisible(true); + }, []); + const handleSubtitleIndexChange = useCallback((index) => { + setSubtitleIndex(index); + }, []); + const handleVideoIndexChange = useCallback((index) => { + setVideoIndex(index); + setSubtitleIndex(0); + }, []); + + const {desc, source, subtitles, type, ...restVideo} = getVideo(videoIndex); + const subtitle = subtitles[subtitleIndex - 1]; + + // Get video source depending on video type + useEffect(() => { + const hls = getHls(); + if (type === 'application/x-mpegURL') { + hls.loadSource(source); + hls.attachMedia(videoRef.current.getVideoNode().media); + } else { + hls.detachMedia(); + videoRef.current.getVideoNode().media.src = source; + } + }, [source, type]); + + useEffect(() => { + const hls = getHls(); + + const onLevelSwitched = () => { + const list = hls.levels.map((level) => level._attrs[0].RESOLUTION); + list.push('auto'); + setResolutions(list); + }; + + hls.on(Hls.Events.LEVEL_SWITCHED, onLevelSwitched); + return () => { + hls.off(Hls.Events.LEVEL_SWITCHED, onLevelSwitched); + }; + }, []); + + // Add or remove subtitle + useEffect(() => { + const video = videoRef.current.getVideoNode().media; + let track = document.getElementById('track'); + if (subtitle) { + if (!document.getElementById('track')) { + track = document.createElement('track'); + track.id = "track"; + video.appendChild(track); + } + video.textTracks[0].mode = "hidden"; + track.src = subtitle.file; + track.kind = "subtitles"; + track.srclang = subtitle.lang; + video.textTracks[0].mode = "showing"; + } else if (video.textTracks[0]) { + video.textTracks[0].mode = "hidden"; + } + }, [subtitle]); + + let content = null; + + if (subtitlePanelsVisible) { + content = ( + + + + ); + } else if (videoPanelsVisible) { + content = ( + + + + ); + } else if (resolutionDropdownVisible) { + content = ( + + +
    + +
    + -1 ? selectedResolution : resolutions.length - 1} + onSelect={handleSelectResolution} + > + {resolutions} + +
    +
    + ); + } + + return ( +
    + + + + {desc} + + +
    + ); +}; + +AppBase.propTypes = { + /** + * Assign an alternate initial subtitle to load first. + * + * @type {Number} + * @default 0 + * @public + */ + subtitleId: PropTypes.number, + + /** + * Assign an alternate initial video to load first. + * + * @type {Number} + * @default 0 + * @public + */ + videoId: PropTypes.number +}; + +AppBase.defaultProps = { + subtitleId: 0, + videoId: 0 +}; + +const App = ThemeDecorator(AppBase); + +export default App; +export {App, AppBase}; diff --git a/limestone/pattern-video-player-custom/src/App/App.module.less b/limestone/pattern-video-player-custom/src/App/App.module.less new file mode 100644 index 000000000..3dbaa80dd --- /dev/null +++ b/limestone/pattern-video-player-custom/src/App/App.module.less @@ -0,0 +1,7 @@ +.app { + // styles can be put here + + .player { + position: absolute; + } +} diff --git a/limestone/pattern-video-player-custom/src/App/package.json b/limestone/pattern-video-player-custom/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-video-player-custom/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-video-player-custom/src/App/subtitle-en.vtt b/limestone/pattern-video-player-custom/src/App/subtitle-en.vtt new file mode 100644 index 000000000..efc161f69 --- /dev/null +++ b/limestone/pattern-video-player-custom/src/App/subtitle-en.vtt @@ -0,0 +1,80 @@ +WEBVTT + + +00:00:00.000 --> 00:00:02.000 +This is a subtitle test. + +00:00:02.000 --> 00:00:04.000 +This is a subtitle test. + +00:00:04.000 --> 00:00:06.000 +This is a subtitle test. + +00:00:06.000 --> 00:00:08.000 +This is a subtitle test. + +00:00:08.000 --> 00:00:10.000 +This is a subtitle test. + +00:00:10.000 --> 00:00:12.000 +This is a subtitle test. + +00:00:12.000 --> 00:00:14.000 +This is a subtitle test. + +00:00:14.000 --> 00:00:16.000 +This is a subtitle test. + +00:00:16.000 --> 00:00:18.000 +This is a subtitle test. + +00:00:18.000 --> 00:00:20.000 +This is a subtitle test. + +00:00:20.000 --> 00:00:22.000 +This is a subtitle test. + +00:00:22.000 --> 00:00:24.000 +This is a subtitle test. + +00:00:24.000 --> 00:00:26.000 +This is a subtitle test. + +00:00:26.000 --> 00:00:28.000 +This is a subtitle test. + +00:00:28.000 --> 00:00:30.000 +This is a subtitle test. + +00:00:30.000 --> 00:00:32.000 +This is a subtitle test. + +00:00:32.000 --> 00:00:34.000 +This is a subtitle test. + +00:00:34.000 --> 00:00:36.000 +This is a subtitle test. + +00:00:36.000 --> 00:00:38.000 +This is a subtitle test. + +00:00:38.000 --> 00:00:40.000 +This is a subtitle test. + +00:00:40.000 --> 00:00:42.000 +This is a subtitle test. + +00:00:42.000 --> 00:00:44.000 +This is a subtitle test. + +00:00:44.000 --> 00:00:46.000 +This is a subtitle test. + +00:00:46.000 --> 00:00:48.000 +This is a subtitle test. + +00:00:48.000 --> 00:00:50.000 +This is a subtitle test. + +00:00:50.000 --> 00:00:52.000 +This is a subtitle test. diff --git a/limestone/pattern-video-player-custom/src/App/subtitle-ko.vtt b/limestone/pattern-video-player-custom/src/App/subtitle-ko.vtt new file mode 100644 index 000000000..33dbb6cf4 --- /dev/null +++ b/limestone/pattern-video-player-custom/src/App/subtitle-ko.vtt @@ -0,0 +1,80 @@ +WEBVTT + + +00:00:00.000 --> 00:00:02.000 +자막 테스트입니다. + +00:00:02.000 --> 00:00:04.000 +자막 테스트입니다. + +00:00:04.000 --> 00:00:06.000 +자막 테스트입니다. + +00:00:06.000 --> 00:00:08.000 +자막 테스트입니다. + +00:00:08.000 --> 00:00:10.000 +자막 테스트입니다. + +00:00:10.000 --> 00:00:12.000 +자막 테스트입니다. + +00:00:12.000 --> 00:00:14.000 +자막 테스트입니다. + +00:00:14.000 --> 00:00:16.000 +자막 테스트입니다. + +00:00:16.000 --> 00:00:18.000 +자막 테스트입니다. + +00:00:18.000 --> 00:00:20.000 +자막 테스트입니다. + +00:00:20.000 --> 00:00:22.000 +자막 테스트입니다. + +00:00:22.000 --> 00:00:24.000 +자막 테스트입니다. + +00:00:24.000 --> 00:00:26.000 +자막 테스트입니다. + +00:00:26.000 --> 00:00:28.000 +자막 테스트입니다. + +00:00:28.000 --> 00:00:30.000 +자막 테스트입니다. + +00:00:30.000 --> 00:00:32.000 +자막 테스트입니다. + +00:00:32.000 --> 00:00:34.000 +자막 테스트입니다. + +00:00:34.000 --> 00:00:36.000 +자막 테스트입니다. + +00:00:36.000 --> 00:00:38.000 +자막 테스트입니다. + +00:00:38.000 --> 00:00:40.000 +자막 테스트입니다. + +00:00:40.000 --> 00:00:42.000 +자막 테스트입니다. + +00:00:42.000 --> 00:00:44.000 +자막 테스트입니다. + +00:00:44.000 --> 00:00:46.000 +자막 테스트입니다. + +00:00:46.000 --> 00:00:48.000 +자막 테스트입니다. + +00:00:48.000 --> 00:00:50.000 +자막 테스트입니다. + +00:00:50.000 --> 00:00:52.000 +자막 테스트입니다. diff --git a/limestone/pattern-video-player-custom/src/App/videos.js b/limestone/pattern-video-player-custom/src/App/videos.js new file mode 100644 index 000000000..d35129a0a --- /dev/null +++ b/limestone/pattern-video-player-custom/src/App/videos.js @@ -0,0 +1,26 @@ +import subtitleFile1 from './subtitle-en.vtt'; // import subtitle file +import subtitleFile2 from './subtitle-ko.vtt'; // import subtitle file + +// Videos List +const videos = [ + { + title: 'mp4 Video Source', + poster: 'http://media.w3.org/2010/05/sintel/poster.png', + source: 'http://media.w3.org/2010/05/sintel/trailer.mp4', + subtitles: [ + {file: subtitleFile1, lang: "en"}, + {file: subtitleFile2, lang: "ko"} + ], + type: 'video/mp4', + desc: 'Custom mp4 video source.' + }, + { + title: 'm3u8 Video Source', + source: '', // put m3u8 video url here + subtitles: [], + type: 'application/x-mpegURL', // m3u8 mime type + desc: 'Custom m3u8 video source.' + } +]; + +export default videos; diff --git a/limestone/pattern-video-player-custom/src/components/README.md b/limestone/pattern-video-player-custom/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/pattern-video-player-custom/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/pattern-video-player-custom/src/index.js b/limestone/pattern-video-player-custom/src/index.js new file mode 100644 index 000000000..57c20e6fd --- /dev/null +++ b/limestone/pattern-video-player-custom/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +const appElement = (); + +// In a browser environment, render the app to the document. +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-video-player-custom/src/views/README.md b/limestone/pattern-video-player-custom/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/pattern-video-player-custom/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/pattern-video-player-custom/src/views/SubtitleSelectionPanel.js b/limestone/pattern-video-player-custom/src/views/SubtitleSelectionPanel.js new file mode 100644 index 000000000..4c505a3f3 --- /dev/null +++ b/limestone/pattern-video-player-custom/src/views/SubtitleSelectionPanel.js @@ -0,0 +1,87 @@ +import {handle} from '@enact/core/handle'; +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import {Header, Panel} from '@enact/limestone/Panels'; +import RadioItem from '@enact/limestone/RadioItem'; +import Scroller from '@enact/limestone/Scroller'; +import Group from '@enact/ui/Group'; +import PropTypes from 'prop-types'; + +import videos from '../App/videos.js'; + +const SubtitleSelectionPanel = kind({ + name: 'SubtitleSelectionPanel', + + propTypes: { + /** + * A function to hide the Panels. + * @type {Function} + */ + onHidePanels: PropTypes.func, + + /** + * A function that receives the selected subtitle's index. + * @type {Function} + */ + onSubtitleIndexChange: PropTypes.func, + + /** + * The index number of the selected subtitle. + * + * @type {Number} + */ + subtitleIndex: PropTypes.number, + + /** + * A title string appear on header + * @type {String} + */ + title: PropTypes.string, + + /** + * The index number of the selected video. + * + * @type {Number} + */ + videoIndex: PropTypes.number + }, + + computed: { + subtitlesList: ({videoIndex}) => { + const subtitlesList = videos[videoIndex].subtitles.map((subtitle) => subtitle.lang); + subtitlesList.unshift("off"); + return subtitlesList; + } + }, + + handlers: { + onSubtitleIndexChange: handle( + (ev, {onSubtitleIndexChange}) => onSubtitleIndexChange(ev.selected) + ) + }, + + render: ({title, onHidePanels, onSubtitleIndexChange, subtitleIndex, subtitlesList, ...rest}) => { + delete rest.videoIndex; + + return ( + +
    + +
    + + + {subtitlesList} + + +
    + ); + } +}); + +export default SubtitleSelectionPanel; diff --git a/limestone/pattern-video-player-custom/src/views/VideoSelectionPanel.js b/limestone/pattern-video-player-custom/src/views/VideoSelectionPanel.js new file mode 100644 index 000000000..a47026ab0 --- /dev/null +++ b/limestone/pattern-video-player-custom/src/views/VideoSelectionPanel.js @@ -0,0 +1,74 @@ +import {handle} from '@enact/core/handle'; +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import {Header, Panel} from '@enact/limestone/Panels'; +import RadioItem from '@enact/limestone/RadioItem'; +import Scroller from '@enact/limestone/Scroller'; +import Group from '@enact/ui/Group'; +import PropTypes from 'prop-types'; + +import videos from '../App/videos.js'; + +// Remap our titles from `videos` to strings in a new array +// videos[{title: 'value'}] -> videosList['value'] +const videosList = videos.map((video) => video.title); + +const VideoSelectionPanel = kind({ + name: 'VideoSelectionPanel', + + propTypes: { + /** + * A function to hide the Panels. + * @type {Function} + */ + onHidePanels: PropTypes.func, + + /** + * A function that receives the selected video's index. + * @type {Function} + */ + onVideoIndexChange: PropTypes.func, + + /** + * A title string appear on header + * @type {String} + */ + title: PropTypes.string, + + /** + * The index number of the selected video. + * + * @type {Number} + */ + videoIndex: PropTypes.number + }, + + handlers: { + onVideoIndexChange: handle( + (ev, {onVideoIndexChange}) => onVideoIndexChange(ev.selected) + ) + }, + + render: ({title, onHidePanels, onVideoIndexChange, videoIndex, ...rest}) => { + return ( + +
    + +
    + + + {videosList} + + +
    + ); + } +}); + +export default VideoSelectionPanel; diff --git a/limestone/pattern-video-player-custom/webos-meta/appinfo.json b/limestone/pattern-video-player-custom/webos-meta/appinfo.json new file mode 100644 index 000000000..54cadc5de --- /dev/null +++ b/limestone/pattern-video-player-custom/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.pattern-video-player-custom", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Video Player Custom Pattern", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-video-player-custom/webos-meta/icon-large.png b/limestone/pattern-video-player-custom/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-video-player-custom/webos-meta/icon-mini.png b/limestone/pattern-video-player-custom/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/pattern-video-player/.eslintignore b/limestone/pattern-video-player/.eslintignore new file mode 100644 index 000000000..7de9f5fde --- /dev/null +++ b/limestone/pattern-video-player/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-video-player/.gitignore b/limestone/pattern-video-player/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/pattern-video-player/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-video-player/LICENSE b/limestone/pattern-video-player/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-video-player/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-video-player/README.md b/limestone/pattern-video-player/README.md new file mode 100644 index 000000000..2bfa3d4d2 --- /dev/null +++ b/limestone/pattern-video-player/README.md @@ -0,0 +1,21 @@ +## VideoPlayer pattern + +A sample Enact application that demonstrates how to use full screen VideoPlayer combined with AlwaysViewingPanels. + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +#### Enact Components Used +- `limestone/Button` +- `limestone/Group` +- `limestone/Item` +- `limestone/Panels/Header` +- `limestone/Panels/Panel` +- `limestone/RadioItem` +- `limestone/Scroller` +- `limestone/VideoPlayer` + +You can find a more detailed view inside of [App.js](src/App/App.js) + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/pattern-video-player/package.json b/limestone/pattern-video-player/package.json new file mode 100644 index 000000000..7d1eeeb6d --- /dev/null +++ b/limestone/pattern-video-player/package.json @@ -0,0 +1,45 @@ +{ + "name": "pattern-video-player", + "version": "1.0.0", + "description": "An Enact application demonstrating AlwaysViewingPanels with VideoPlayer.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Video Player Pattern", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-video-player/resources/ilibmanifest.json b/limestone/pattern-video-player/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-video-player/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-video-player/src/App/App.js b/limestone/pattern-video-player/src/App/App.js new file mode 100644 index 000000000..0212f3d5d --- /dev/null +++ b/limestone/pattern-video-player/src/App/App.js @@ -0,0 +1,107 @@ +import Button from '@enact/limestone/Button'; +import {MediaControls} from '@enact/limestone/MediaPlayer'; +import {Panels} from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; +import VideoPlayer from '@enact/limestone/VideoPlayer'; +import Spotlight from '@enact/spotlight'; +import PropTypes from 'prop-types'; +import {useCallback, useEffect, useRef, useState} from 'react'; + +import ItemPanel from '../views/ItemPanel'; +import MainPanel from '../views/MainPanel'; + +import videos from './videos.js'; + +import css from './App.module.less'; + +const getVideo = (index) => videos[index]; + +const AppBase = ({className, panelId, videoId, ...rest}) => { + const [panelIndex, setPanelIndex] = useState(panelId); + const [panelsVisible, setPanelsVisible] = useState(false); + const [videoIndex, setVideoIndex] = useState(videoId); + const videoRef = useRef(null); + + useEffect(() => { + // After displaying the panels, move the focus to the main panel + if (panelsVisible) { + Spotlight.focus('main-panel'); + } + }, [panelsVisible]); + + const handleNextPanelClick = useCallback(() => setPanelIndex(prevPanelIndex => (prevPanelIndex + 1)), []); + const handleBack = useCallback(({index}) => setPanelIndex(index), []); + const handleHidePanelsClick = useCallback(() => setPanelsVisible(false), []); + const handleShowPanelsClick = useCallback(() => { + videoRef.current.hideControls(); + setPanelsVisible(true); + }, []); + const handleVideoIndexChange = useCallback((index) => setVideoIndex(index), []); + const {source, desc, ...restVideo} = getVideo(videoIndex); + + return ( +
    + + + + {desc} + + +
    + ); +}; + +AppBase.propTypes = { + /** + * Assign an alternate panel index to start on. + * + * @type {Number} + * @default 0 + * @public + */ + panelId: PropTypes.number, + + /** + * Assign an alternate initial video to load first. + * + * @type {Number} + * @default 0 + * @public + */ + videoId: PropTypes.number +}; + +AppBase.defaultProps = { + panelId: 0, + videoId: 0 +}; + +const App = ThemeDecorator(AppBase); + +export default App; +export {App, AppBase}; diff --git a/limestone/pattern-video-player/src/App/App.module.less b/limestone/pattern-video-player/src/App/App.module.less new file mode 100644 index 000000000..3dbaa80dd --- /dev/null +++ b/limestone/pattern-video-player/src/App/App.module.less @@ -0,0 +1,7 @@ +.app { + // styles can be put here + + .player { + position: absolute; + } +} diff --git a/limestone/pattern-video-player/src/App/package.json b/limestone/pattern-video-player/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-video-player/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-video-player/src/App/videos.js b/limestone/pattern-video-player/src/App/videos.js new file mode 100644 index 000000000..044d6ffc9 --- /dev/null +++ b/limestone/pattern-video-player/src/App/videos.js @@ -0,0 +1,30 @@ +// Videos List +const videos = [ + { + title: 'Sintel', + poster: 'http://media.w3.org/2010/05/sintel/poster.png', + source: 'http://media.w3.org/2010/05/sintel/trailer.mp4', + desc: 'The film follows a girl named Sintel who is searching for a baby dragon she calls Scales. A flashback reveals that Sintel found Scales with its wing injured and helped care for it, forming a close bond with it.' + }, + { + title: 'Big Buck Bunny', + poster: 'http://media.w3.org/2010/05/bunny/poster.png', + source: 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4', + desc: '\'Big\' Buck wakes up in his rabbit hole, only to be pestered by three critters, Gimera, Frank and Rinky. When Gimera kills a butterfly, Buck decides on a payback Predator-style.' + }, + { + title: 'VideoTest', + poster: 'http://media.w3.org/2010/05/video/poster.png', + source: 'http://media.w3.org/2010/05/video/movie_300.mp4', + desc: 'A test video with unusual proportions' + }, + { + title: 'Bad Video Source', + poster: 'http://media.w3.org/2010/05/video/poster.png', + // Intentionally invalid video to demonstrate source error state + source: 'https://github.com/mderrick/react-html5video', + desc: 'Intentionally invalid video to demonstrate source error state' + } +]; + +export default videos; diff --git a/limestone/pattern-video-player/src/components/README.md b/limestone/pattern-video-player/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/pattern-video-player/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/pattern-video-player/src/index.js b/limestone/pattern-video-player/src/index.js new file mode 100644 index 000000000..57c20e6fd --- /dev/null +++ b/limestone/pattern-video-player/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +const appElement = (); + +// In a browser environment, render the app to the document. +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-video-player/src/views/ItemPanel.js b/limestone/pattern-video-player/src/views/ItemPanel.js new file mode 100644 index 000000000..7cfb92e84 --- /dev/null +++ b/limestone/pattern-video-player/src/views/ItemPanel.js @@ -0,0 +1,28 @@ +import kind from '@enact/core/kind'; +import Item from '@enact/limestone/Item'; +import {Header, Panel} from '@enact/limestone/Panels'; +import PropTypes from 'prop-types'; + +const ItemPanel = kind({ + name: 'ItemPanel', + + propTypes: { + /** + * A title string appear on header + * @type {String} + */ + title: PropTypes.string + }, + + render: ({title, ...rest}) => ( + +
    + Item 1 + Item 2 + Item 3 + Item 4 + + ) +}); + +export default ItemPanel; diff --git a/limestone/pattern-video-player/src/views/MainPanel.js b/limestone/pattern-video-player/src/views/MainPanel.js new file mode 100644 index 000000000..6458d3bba --- /dev/null +++ b/limestone/pattern-video-player/src/views/MainPanel.js @@ -0,0 +1,81 @@ +import {handle} from '@enact/core/handle'; +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import {Header, Panel} from '@enact/limestone/Panels'; +import RadioItem from '@enact/limestone/RadioItem'; +import Scroller from '@enact/limestone/Scroller'; +import Group from '@enact/ui/Group'; +import PropTypes from 'prop-types'; + +import videos from '../App/videos.js'; + +// Remap our titles from `videos` to strings in a new array +// videos[{title: 'value'}] -> videosList['value'] +const videosList = videos.map((video) => video.title); + +const MainPanel = kind({ + name: 'MainPanel', + + propTypes: { + /** + * A function to hide the Panels. + * @type {Function} + */ + onHidePanels: PropTypes.func, + + /** + * A function to activate the next Panel. + * @type {Function} + */ + onNextPanel: PropTypes.func, + + /** + * A function that receives the selected video's index. + * @type {Function} + */ + onVideoIndexChange: PropTypes.func, + + /** + * A title string appear on header + * @type {String} + */ + title: PropTypes.string, + + /** + * The index number of the selected video. + * + * @type {Number} + */ + videoIndex: PropTypes.number + }, + + handlers: { + onVideoIndexChange: handle( + (ev, {onVideoIndexChange}) => onVideoIndexChange(ev.selected) + ) + }, + + render: ({title, onNextPanel, onHidePanels, onVideoIndexChange, videoIndex, ...rest}) => { + return ( + +
    + + +
    + + + {videosList} + + +
    + ); + } +}); + +export default MainPanel; diff --git a/limestone/pattern-video-player/src/views/README.md b/limestone/pattern-video-player/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/pattern-video-player/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/pattern-video-player/webos-meta/appinfo.json b/limestone/pattern-video-player/webos-meta/appinfo.json new file mode 100644 index 000000000..4fdc423ff --- /dev/null +++ b/limestone/pattern-video-player/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.pattern-video-player", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Video Player Pattern", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-video-player/webos-meta/icon-large.png b/limestone/pattern-video-player/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-video-player/webos-meta/icon-mini.png b/limestone/pattern-video-player/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/pattern-virtualgridlist-api/.eslintignore b/limestone/pattern-virtualgridlist-api/.eslintignore new file mode 100644 index 000000000..93c033154 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-virtualgridlist-api/.gitignore b/limestone/pattern-virtualgridlist-api/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-virtualgridlist-api/LICENSE b/limestone/pattern-virtualgridlist-api/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-virtualgridlist-api/README.md b/limestone/pattern-virtualgridlist-api/README.md new file mode 100644 index 000000000..2af0af9df --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/README.md @@ -0,0 +1,17 @@ +## VirtualGridList add/remove/select/deselect pattern // My Gallery + +A sample Enact application that shows off how to add/remove/select/deselect items of VirtualGridList + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +#### Enact Components Used +- `limestone/Button` +- `limestone/ImageItem` +- `limestone/Panels/Header` +- `limestone/VirtualList/VirtualGridList` + +In this app, you can add, remove, select, deselect, selectAll, and deselectAll items using redux. + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/pattern-virtualgridlist-api/package.json b/limestone/pattern-virtualgridlist-api/package.json new file mode 100644 index 000000000..db9f8aad1 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/package.json @@ -0,0 +1,48 @@ +{ + "name": "pattern-virtualgridlist-api", + "version": "1.0.0", + "description": "An Enact application demonstrating VirtualGridList API with Redux.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "VirtualGridList API Pattern", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "4.9.4", + "@reduxjs/toolkit": "^2.3.0", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-redux": "^9.1.2", + "redux": "^5.0.1" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-virtualgridlist-api/resources/ilibmanifest.json b/limestone/pattern-virtualgridlist-api/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-virtualgridlist-api/src/App/App.js b/limestone/pattern-virtualgridlist-api/src/App/App.js new file mode 100644 index 000000000..4d67781ee --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/App/App.js @@ -0,0 +1,26 @@ +import kind from '@enact/core/kind'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; + +import MainView from '../views/MainView'; + +import css from './App.module.less'; + +const AppBase = kind({ + name: 'App', + + styles: { + css, + className: 'app' + }, + + render: (props) => ( +
    + +
    + ) +}); + +const App = ThemeDecorator({noAutoFocus: true}, AppBase); + +export default App; +export {App, AppBase}; diff --git a/limestone/pattern-virtualgridlist-api/src/App/App.module.less b/limestone/pattern-virtualgridlist-api/src/App/App.module.less new file mode 100644 index 000000000..d78135e9c --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/App/App.module.less @@ -0,0 +1,8 @@ +@import '~@enact/ui/styles/mixins.less'; + +.app { + position: absolute; + .position(0); + padding: 0.5rem; + box-sizing: border-box; +} diff --git a/limestone/pattern-virtualgridlist-api/src/App/package.json b/limestone/pattern-virtualgridlist-api/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-virtualgridlist-api/src/components/GalleryPanelHeader/GalleryPanelHeader.js b/limestone/pattern-virtualgridlist-api/src/components/GalleryPanelHeader/GalleryPanelHeader.js new file mode 100644 index 000000000..00a53a0dc --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/components/GalleryPanelHeader/GalleryPanelHeader.js @@ -0,0 +1,121 @@ +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import {Header} from '@enact/limestone/Panels'; +import PropTypes from 'prop-types'; +import {connect} from 'react-redux'; + +import { + addItem as addAction, + deleteItem as deleteAction, + selectAll as selectAllAction, + selectionEnable as selectionEnableAction +} from '../../store'; + +const createMockItem = (album, albumSize, showOverlay) => { + const + dataLength = albumSize, + caption = (dataLength % 8 === 0) ? ' with long title' : '', + subCaption = (dataLength % 8 === 0) ? 'Lorem ipsum dolor sit amet' : 'Subtitle', + color = Math.floor((Math.random() * 0xEFEFF0) + 0x101010).toString(16); + + return { + selected: false, + selectionOverlayShowing: showOverlay, + caption: album + ' ' + dataLength + caption, + subCaption: subCaption, + source: 'https://placehold.co/300x300/' + color + '/ffffff/png?text=Image+' + dataLength + }; +}; + +const GalleryPanelHeader = kind({ + name: 'GalleryPanelHeader', + + propTypes: { + showOverlay: PropTypes.bool.isRequired, + addItem: PropTypes.func, + album: PropTypes.string, + albumSize: PropTypes.number, + deleteItem: PropTypes.func, + selectAll: PropTypes.func, + selectionEnable: PropTypes.func + }, + + handlers: { + addMockItem: (ev, {addItem, album, albumSize, showOverlay}) => { + addItem(createMockItem(album, albumSize, showOverlay)); + }, + deleteItem: (ev, {deleteItem}) => { + deleteItem(); + }, + selectAll: (ev, {selectAll}) => { + selectAll(); + }, + showSelectionOverlayHandler: (ev, {selectionEnable}) => { + selectionEnable(); + } + }, + + computed: { + selectionPreviousButton: ({showOverlay, showSelectionOverlayHandler}) => { + const + tooltipText = showOverlay ? 'Previous' : 'Selection', + icon = showOverlay ? 'arrowhookleft' : 'check'; + return ( + ); + } + }, + selectAllButton: ({selectAll, showOverlay}) => { + if (showOverlay) { + return (); + } + } + }, + + render: ({addButton, deleteButton, selectAllButton, selectionPreviousButton, ...rest}) => { + delete rest.album; + delete rest.albumSize; + delete rest.addItem; + delete rest.addMockItem; + delete rest.deleteItem; + delete rest.selectAll; + delete rest.selectionEnable; + delete rest.showOverlay; + delete rest.showSelectionOverlayHandler; + + return ( +
    + {addButton} + {deleteButton} + {selectAllButton} + {selectionPreviousButton} +
    + ); + } +}); + +const mapStateToProps = ({data}) => ({ + album: data.album, + albumSize: data.dataOrder.length, + showOverlay: data.showOverlay +}); + +const mapDispatchToProps = (dispatch) => { + return { + addItem: (item) => dispatch(addAction(item)), + deleteItem: () => dispatch(deleteAction()), + selectionEnable: () => dispatch(selectionEnableAction()), + selectAll: () => dispatch(selectAllAction()) + }; +}; + +export default connect(mapStateToProps, mapDispatchToProps)(GalleryPanelHeader); diff --git a/limestone/pattern-virtualgridlist-api/src/components/GalleryPanelHeader/package.json b/limestone/pattern-virtualgridlist-api/src/components/GalleryPanelHeader/package.json new file mode 100755 index 000000000..cd54787f2 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/components/GalleryPanelHeader/package.json @@ -0,0 +1,3 @@ +{ + "main": "GalleryPanelHeader.js" +} diff --git a/limestone/pattern-virtualgridlist-api/src/components/ImageItem/ImageItem.js b/limestone/pattern-virtualgridlist-api/src/components/ImageItem/ImageItem.js new file mode 100644 index 000000000..5265afc96 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/components/ImageItem/ImageItem.js @@ -0,0 +1,54 @@ +import kind from '@enact/core/kind'; +import ImageItem from '@enact/limestone/ImageItem'; +import PropTypes from 'prop-types'; +import {connect} from 'react-redux'; + +import {selectItem} from '../../store'; + +const GalleryItem = kind({ + name: 'ImageItem', + + propTypes: { + caption: PropTypes.string, + index: PropTypes.number, + selected: PropTypes.bool, + selectImageItem: PropTypes.func, + selectionOverlayShowing: PropTypes.bool, + source: PropTypes.string, + subCaption: PropTypes.string + }, + + render: ({caption, selected, selectImageItem, selectionOverlayShowing, source, subCaption, ...rest}) => { + delete rest.index; + + return ( + + {caption} + + ); + } +}); + +const mapStateToProps = ({data}, {['data-index']: dataIndex}) => ({ + caption: data.data[dataIndex].caption, + selected: data.selectedItems.includes(dataIndex), + selectionOverlayShowing: data.data[dataIndex].selectionOverlayShowing, + source: data.data[dataIndex].source, + subCaption: data.data[dataIndex].subCaption +}); + +const mapDispatchToProps = (dispatch, {['data-index']: dataIndex}) => { + return { + selectImageItem: () => dispatch(selectItem(dataIndex)) + }; +}; + +export default connect(mapStateToProps, mapDispatchToProps)(GalleryItem); diff --git a/limestone/pattern-virtualgridlist-api/src/components/ImageItem/package.json b/limestone/pattern-virtualgridlist-api/src/components/ImageItem/package.json new file mode 100644 index 000000000..b5a8930c8 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/components/ImageItem/package.json @@ -0,0 +1,3 @@ +{ + "main": "ImageItem.js" +} diff --git a/limestone/pattern-virtualgridlist-api/src/components/ImageList/ImageList.js b/limestone/pattern-virtualgridlist-api/src/components/ImageList/ImageList.js new file mode 100644 index 000000000..79a10f1a1 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/components/ImageList/ImageList.js @@ -0,0 +1,33 @@ +import {VirtualGridList} from '@enact/limestone/VirtualList'; +import ri from '@enact/ui/resolution'; +import PropTypes from 'prop-types'; +import {useCallback} from 'react'; +import {connect} from 'react-redux'; + +import ImageItem from '../ImageItem'; + +const ImageList = ({imageitems, ...rest}) => { + const renderItem = useCallback(({...props}) => (), []); + + delete rest.dispatch; + + return ( + + ); +}; + +ImageList.propTypes = { + dispatch: PropTypes.func, + imageitems: PropTypes.array +}; + +const mapStateToProps = ({data}) => ({ + imageitems: data.dataOrder +}); + +export default connect(mapStateToProps)(ImageList); diff --git a/limestone/pattern-virtualgridlist-api/src/components/ImageList/package.json b/limestone/pattern-virtualgridlist-api/src/components/ImageList/package.json new file mode 100644 index 000000000..f3ba8ab05 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/components/ImageList/package.json @@ -0,0 +1,3 @@ +{ + "main": "ImageList.js" +} diff --git a/limestone/pattern-virtualgridlist-api/src/components/SideBar/SideBar.js b/limestone/pattern-virtualgridlist-api/src/components/SideBar/SideBar.js new file mode 100755 index 000000000..6f715466a --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/components/SideBar/SideBar.js @@ -0,0 +1,44 @@ +import {adaptEvent, forward, handle} from '@enact/core/handle'; +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import Group from '@enact/ui/Group'; +import PropTypes from 'prop-types'; + +import css from './SideBar.module.less'; + +const SideBar = kind({ + name: 'SideBar', + + propTypes: { + onAlbumChange: PropTypes.func.isRequired, + albums: PropTypes.array + }, + + styles: { + css, + className: 'sideBar' + }, + + handlers: { + onAlbumChange: handle( + adaptEvent(ev => ({type: 'onChangeAlbum', album: ev.data}), forward('onAlbumChange'))) + }, + + render: ({albums, onAlbumChange, ...rest}) => { + delete rest.albums; + delete rest.onAlbumChange; + + return ( + + {albums} + + ); + } +}); + +export default SideBar; diff --git a/limestone/pattern-virtualgridlist-api/src/components/SideBar/SideBar.module.less b/limestone/pattern-virtualgridlist-api/src/components/SideBar/SideBar.module.less new file mode 100755 index 000000000..514f45415 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/components/SideBar/SideBar.module.less @@ -0,0 +1,3 @@ +.sideBar { + margin-right: 12px; +} diff --git a/limestone/pattern-virtualgridlist-api/src/components/SideBar/package.json b/limestone/pattern-virtualgridlist-api/src/components/SideBar/package.json new file mode 100644 index 000000000..00762a8a1 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/components/SideBar/package.json @@ -0,0 +1,3 @@ +{ + "main": "SideBar.js" +} diff --git a/limestone/pattern-virtualgridlist-api/src/index.js b/limestone/pattern-virtualgridlist-api/src/index.js new file mode 100644 index 000000000..164498fb9 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './main'; + +let appElement = ; + +// In a browser environment, render instead of exporting +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-virtualgridlist-api/src/main.js b/limestone/pattern-virtualgridlist-api/src/main.js new file mode 100644 index 000000000..93f46c26b --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/main.js @@ -0,0 +1,22 @@ +import {Provider} from 'react-redux'; + +import App, {AppBase} from './App'; +import configureAppStore from './store'; + +// set default launch path +const store = configureAppStore(); + +let appElementBase = () => ( + + + +); + +let appElement = () => ( + + + +); + +export default appElement; +export {appElement, appElementBase}; diff --git a/limestone/pattern-virtualgridlist-api/src/store/index.js b/limestone/pattern-virtualgridlist-api/src/store/index.js new file mode 100755 index 000000000..ba396e4a7 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/store/index.js @@ -0,0 +1,127 @@ +import {configureStore, combineReducers, createSlice} from '@reduxjs/toolkit'; + +const createRecords = (album) => { + let records = { + album: album, + dataOrder: [], + data: {}, + selectedItems: [], + showOverlay: false + }; + let caption, subCaption, color; + + for (let idx = 0; idx < 500; ++idx) { + caption = (idx % 8 === 0) ? ' with long title' : ''; + subCaption = (idx % 8 === 0) ? 'Lorem ipsum dolor sit amet' : 'Subtitle'; + color = Math.floor((Math.random() * (0x1000000 - 0x101010)) + 0x101010).toString(16); + + records.dataOrder.push(idx); + records.data[idx] = { + selected: false, + selectionOverlayShowing: false, + caption: album + ' ' + idx + caption, + subCaption: subCaption, + source: 'https://placehold.co/300x300/' + color + '/ffffff/png?text=Image+' + idx + }; + } + + return records; +}; + +const recordSlice = createSlice({ + name: 'recordReducer', + initialState: createRecords('Family'), + reducers: { + addItem: (state, action) => { + const addedKey = Object.keys(state.data).length; + let newData = Object.assign({}, state.data); + let newDataOrder = state.dataOrder; + + newData[addedKey] = action.payload; + newDataOrder = state.dataOrder.concat(addedKey); + + Object.assign(state, {data: newData, dataOrder: newDataOrder, selectedItems: []}); + }, + changeAlbum: (state, action) => { + if (state.album !== action.payload) { + Object.assign(state, createRecords(action.payload)); + } + }, + deleteItem: (state) => { + const selectedItems = state.selectedItems; + const filteredDataOrder = state.dataOrder.filter((item) => !selectedItems.includes(item)); + + let newData = {}; + let newDataOrder = []; + + for (let i = 0; i < filteredDataOrder.length; i++) { + const newId = filteredDataOrder[i]; + newData[i] = state.data[newId]; + newDataOrder.push(i); + } + + Object.assign(state, {data: newData, dataOrder: newDataOrder, selectedItems: []}); + }, + selectionEnable: (state) => { + let newdata = {}; + + Object.keys(state.data).forEach((id) => { + newdata[id] = Object.assign({}, state.data[id], {selectionOverlayShowing: !state.data[id].selectionOverlayShowing}); + }); + + Object.assign(state, {data: newdata, showOverlay: !state.showOverlay}); + }, + selectAll: (state) => { + const selectedItems = state.selectedItems; + + if (selectedItems.length === state.dataOrder.length) { + selectedItems.length = 0; + } else { + for (let i = 0; i < state.dataOrder.length; i++) { + selectedItems.push(i); + } + } + + Object.assign(state, {selectedItems}); + }, + selectItem: (state, action) => { + const selectedItems = state.selectedItems; + const isSelected = selectedItems.includes(action.payload); + + if (state.showOverlay) { + if (isSelected) { + let id = selectedItems.indexOf(action.payload); + if (id >= 0) { + selectedItems.splice(id, 1); + } + } else { + selectedItems.push(action.payload); + } + } + + Object.assign(state, {selectedItems}); + } + } +}); + +export const {addItem, changeAlbum, deleteItem, selectionEnable, selectAll, selectItem} = recordSlice.actions; + +const rootReducer = combineReducers({ + data : recordSlice.reducer +}); + +export default function configureAppStore (initialState) { + const store = configureStore({ + reducer: rootReducer, + initialState + }); + + if (module.hot) { + // Enable Webpack hot module replacement for reducers + module.hot.accept('./index.js', () => { + store.replaceReducer(rootReducer); + }); + } + + return store; +} diff --git a/limestone/pattern-virtualgridlist-api/src/views/AppStateDecorator.js b/limestone/pattern-virtualgridlist-api/src/views/AppStateDecorator.js new file mode 100644 index 000000000..ccc8e92bd --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/views/AppStateDecorator.js @@ -0,0 +1,18 @@ +import {connect} from 'react-redux'; + +import {changeAlbum} from '../store'; + +const mapStateToProps = ({data}) => ({ + album: data.album +}); + +const mapDispatchToProps = (dispatch) => { + return { + onChangeAlbum: (album) => dispatch(changeAlbum(album)) + }; +}; + +const AppStateDecorator = connect(mapStateToProps, mapDispatchToProps); + +export default AppStateDecorator; +export {AppStateDecorator}; diff --git a/limestone/pattern-virtualgridlist-api/src/views/MainView.js b/limestone/pattern-virtualgridlist-api/src/views/MainView.js new file mode 100644 index 000000000..bfc0989e2 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/views/MainView.js @@ -0,0 +1,59 @@ +import PropTypes from 'prop-types'; +import {useCallback, useEffect, useRef} from 'react'; + +import GalleryPanelHeader from '../components/GalleryPanelHeader'; +import ImageList from '../components/ImageList'; +import SideBar from '../components/SideBar'; + +import AppStateDecorator from './AppStateDecorator'; + +import css from './MainView.module.less'; + +const albums = ['Family', 'Car', 'Travel']; + +const MainView = ({onChangeAlbum}) => { + const scrollToRef = useRef(null); + + useEffect(() => { + scrollToRef.current({index: 0, animate: false, focus: true}); + }); + + useEffect(() => { + // Below is an example of using scrollTo method for setting an "initial" position of VirtualList. + // It is a substitute for focusOnIndex, setInitialFocusIndex, and scrollToItem of enyo. + scrollToRef.current({index: 60, animate: false, focus: true}); + }, []); + + const onChange = useCallback(({album}) => { + onChangeAlbum(album); + }, [onChangeAlbum]); + + const getScrollTo = useCallback((scrollTo) => { + scrollToRef.current = scrollTo; + }, []); + + return ( +
    + +
    + + +
    +
    + ); +}; + +MainView.propTypes = { + album: PropTypes.string, + onChangeAlbum: PropTypes.func +}; + +export default AppStateDecorator(MainView); diff --git a/limestone/pattern-virtualgridlist-api/src/views/MainView.module.less b/limestone/pattern-virtualgridlist-api/src/views/MainView.module.less new file mode 100755 index 000000000..ba193e912 --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/src/views/MainView.module.less @@ -0,0 +1,21 @@ +.mainView { + display: flex; + flex-direction: column; + height: 100%; +} + +.content { + display: flex; + padding-top: 12px; + box-sizing: border-box; + flex: 1 0; + overflow: hidden; +} + +.sideBar { + flex: 1; +} + +.list { + flex: 3; +} diff --git a/limestone/pattern-virtualgridlist-api/webos-meta/appinfo.json b/limestone/pattern-virtualgridlist-api/webos-meta/appinfo.json new file mode 100644 index 000000000..0ffa9689b --- /dev/null +++ b/limestone/pattern-virtualgridlist-api/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.pattern-virtualgridlist-api", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "VirtualGridList API Pattern", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-virtualgridlist-api/webos-meta/icon-large.png b/limestone/pattern-virtualgridlist-api/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-virtualgridlist-api/webos-meta/icon-mini.png b/limestone/pattern-virtualgridlist-api/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/pattern-virtualgridlist-incremental-load/.gitignore b/limestone/pattern-virtualgridlist-incremental-load/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-virtualgridlist-incremental-load/README.md b/limestone/pattern-virtualgridlist-incremental-load/README.md new file mode 100644 index 000000000..a74065795 --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/README.md @@ -0,0 +1,18 @@ +## Incremental Data Loading in VirtualGridList Pattern + +A sample Enact application that demonstrates how to load items incrementally in a VirtualGridList. + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +#### Enact Components Used +- `limestone/ImageItem` +- `limestone/Panels/Header` +- `limestone/Panels/Panel` +- `limestone/VirtualList/VirtualGridList` + +In this app, data is loaded as you scroll to the bottom of the VirtualGridList. Use your API server to fetch data to load. +Performance may decrease when using the `onScroll` handler, so use the `onScrollStop` handler as shown in the sample. + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/pattern-virtualgridlist-incremental-load/package.json b/limestone/pattern-virtualgridlist-incremental-load/package.json new file mode 100644 index 000000000..d1ea7c462 --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/package.json @@ -0,0 +1,46 @@ +{ + "name": "pattern-virtualgridlist-incremental-load", + "version": "1.0.0", + "description": "A general template for an Enact Limestone application.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "UNLICENSED", + "private": true, + "repository": "", + "enact": { + "theme": "limestone" + }, + "eslintConfig": { + "extends": "enact-proxy" + }, + "eslintIgnore": [ + "node_modules/*", + "build/*", + "dist/*" + ], + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-virtualgridlist-incremental-load/resources/ilibmanifest.json b/limestone/pattern-virtualgridlist-incremental-load/resources/ilibmanifest.json new file mode 100644 index 000000000..b736f135b --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-virtualgridlist-incremental-load/src/App/App.js b/limestone/pattern-virtualgridlist-incremental-load/src/App/App.js new file mode 100644 index 000000000..8c799a7c9 --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/src/App/App.js @@ -0,0 +1,27 @@ +import kind from '@enact/core/kind'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; +import Panels from '@enact/limestone/Panels'; + +import MainView from '../views/MainView'; + +import css from './App.module.less'; + +const App = kind({ + name: 'App', + + styles: { + css, + className: 'app' + }, + + render: (props) => ( +
    + + + +
    + ) +}); + +export default ThemeDecorator(App); +export {App}; diff --git a/limestone/pattern-virtualgridlist-incremental-load/src/App/App.module.less b/limestone/pattern-virtualgridlist-incremental-load/src/App/App.module.less new file mode 100644 index 000000000..d78135e9c --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/src/App/App.module.less @@ -0,0 +1,8 @@ +@import '~@enact/ui/styles/mixins.less'; + +.app { + position: absolute; + .position(0); + padding: 0.5rem; + box-sizing: border-box; +} diff --git a/limestone/pattern-virtualgridlist-incremental-load/src/App/package.json b/limestone/pattern-virtualgridlist-incremental-load/src/App/package.json new file mode 100644 index 000000000..441552583 --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-virtualgridlist-incremental-load/src/components/README.md b/limestone/pattern-virtualgridlist-incremental-load/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/pattern-virtualgridlist-incremental-load/src/index.js b/limestone/pattern-virtualgridlist-incremental-load/src/index.js new file mode 100644 index 000000000..a601c327f --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/src/index.js @@ -0,0 +1,17 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +const appElement = (); + +// In a browser environment, render instead of exporting +if (typeof window !== 'undefined') { + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(document.getElementById('root'), appElement); + } else { + createRoot(document.getElementById('root')).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-virtualgridlist-incremental-load/src/views/MainView.js b/limestone/pattern-virtualgridlist-incremental-load/src/views/MainView.js new file mode 100644 index 000000000..6faa46f22 --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/src/views/MainView.js @@ -0,0 +1,89 @@ +import {ImageItem} from '@enact/limestone/ImageItem'; +import {Panel, Header} from '@enact/limestone/Panels'; +import ri from '@enact/ui/resolution'; +import {VirtualGridList} from '@enact/limestone/VirtualList'; +import {useCallback, useState, useEffect} from 'react'; + +const defaultSize = 50; +const addedListSize = 30; + +const MainView = (props) => { + const [items, setItems] = useState([]); + const [isFetching, setIsFetching] = useState(false); + + const createInitialData = useCallback((itemSize) => { + const newItems = Array.from(items); + + for (let i = 0; i < itemSize; i++) { + const text = `Item ${i}`, + subText = `SubItem ${i}`, + color = Math.floor(Math.random() * (0x1000000 - 0x101010) + 0x101010).toString(16), + source = `https://placehold.co/300x300/` + color + '/ffffff/png?text=Image+' + i; + + newItems.push({text, subText, source}); + } + setItems(newItems); + }, [items]); + + const loadMoreData = useCallback(() => { + // Inside this function, you can fetch data from your API server. + // Here, assuming that the fetch is successful, we only proceed with attaching the data. + + const newItems = Array.from(items); + const length = items.length; + + for (let i = length; i < length + addedListSize; i++) { + const text = `Item ${i}`, + subText = `SubItem ${i}`, + color = Math.floor(Math.random() * (0x1000000 - 0x101010) + 0x101010).toString(16), + source = `https://placehold.co/300x300/` + color + '/ffffff/png?text=Image+' + i; + + newItems.push({text, subText, source}); + } + setItems(newItems); + }, [items]); + + const renderItem = useCallback(({index, ...rest}) => { + const {text, subText, source} = items[index]; + return ( + + {text} + + ); + }, [items]); + + const handleScrollStop = useCallback((event) => { + const reachedBottom = event.reachedEdgeInfo.bottom; + + if (reachedBottom) { + setIsFetching(true); + } + }, []); + + useEffect(() => { + createInitialData(defaultSize); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + useEffect(() => { + if (isFetching) { + loadMoreData(); + setIsFetching(false); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isFetching]); + + return ( + +
    + + + ); +}; + +export default MainView; diff --git a/limestone/pattern-virtualgridlist-incremental-load/src/views/README.md b/limestone/pattern-virtualgridlist-incremental-load/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/pattern-virtualgridlist-incremental-load/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/pattern-virtuallist-preserving-focus/.eslintignore b/limestone/pattern-virtuallist-preserving-focus/.eslintignore new file mode 100644 index 000000000..93c033154 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/pattern-virtuallist-preserving-focus/.gitignore b/limestone/pattern-virtuallist-preserving-focus/.gitignore new file mode 100644 index 000000000..f94ea516b --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/pattern-virtuallist-preserving-focus/LICENSE b/limestone/pattern-virtuallist-preserving-focus/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/pattern-virtuallist-preserving-focus/README.md b/limestone/pattern-virtuallist-preserving-focus/README.md new file mode 100644 index 000000000..e07d004d0 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/README.md @@ -0,0 +1,69 @@ +## Preserving focus in VirtualList Pattern + +A sample Enact application that shows how to preserve focus in `VirtualList` when navigating `Panel`s. + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +#### Enact Components Used +- `limestone/Button` +- `limestone/Item` +- `limestone/Panels/Header` +- `limestone/Panels/Panel` +- `limestone/VirtualList` + +To preserve the last focus, you need to set a unique `containerId` to `VirtualList`. +In this sample, we passed `id` prop from `MainPanel` to `VirtualList`. + +If you do this, `Spotlight` and `VirtualList` will recover the last focus when the `Panel` is mounting. + +In addition, if you want to preserve the last scroll position, you can save the scroll position from `onScrollStop` callback and restore it with `scrollTo` method. +You may need to use redux for managing each scroll position for VirtualLists. + +In `PatternList` view, `containerId` is set and `onScrollStop` calls dispatching `saveLastScrollInfo` action. +```javascript + +render = () => { + const {onScrollStop, id, ...rest} = this.props; + delete rest.scrollLeft; + delete rest.scrollTop; + + return ( + + ); +} + +const mapDispatchToProps = (dispatch, {index}) => ({ + onScrollStop: (info) => dispatch(saveLastScrollInfo(index, info)) +}); + +``` + +`lastScrollInfo` will be injected as props to the list and it can be restore it with `scrollTo` method. + +```javascript +componentDidMount () { + const {scrollLeft, scrollTop} = this.props; + this.scrollTo({position: {x: scrollLeft, y: scrollTop}, animate: false}); +} + +const mapStateToProps = ({lastScrollInfo}, {index}) => { + const info = lastScrollInfo[index]; + return { + scrollLeft: info ? info.scrollLeft : 0, + scrollTop: info ? info.scrollTop : 0 + }; +}; + +``` + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/pattern-virtuallist-preserving-focus/package.json b/limestone/pattern-virtuallist-preserving-focus/package.json new file mode 100644 index 000000000..c405d05dc --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/package.json @@ -0,0 +1,48 @@ +{ + "name": "pattern-virtuallist-preserving-focus", + "version": "1.0.0", + "description": "An Enact application demonstrating VirtualList with preserving focus.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "VirtualList Preserving Focus Pattern", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "@reduxjs/toolkit": "^2.3.0", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-redux": "^9.1.2", + "redux": "^5.0.1" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-virtuallist-preserving-focus/resources/ilibmanifest.json b/limestone/pattern-virtuallist-preserving-focus/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-virtuallist-preserving-focus/src/App/App.js b/limestone/pattern-virtuallist-preserving-focus/src/App/App.js new file mode 100644 index 000000000..ef1679d33 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/App/App.js @@ -0,0 +1,50 @@ +import kind from '@enact/core/kind'; +import {Panels} from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; +import PropTypes from 'prop-types'; +import {connect} from 'react-redux'; + +import {decreaseIndex, increaseIndex} from '../store'; +import MainPanel from '../views/MainPanel'; + +const Sample = kind({ + name: 'App', + + propTypes: { + index: PropTypes.number, + popPanel: PropTypes.func, + pushPanel: PropTypes.func + }, + + defaultProps: { + index: 0 + }, + + render: ({index, pushPanel, popPanel, ...rest}) => { + return ( + + + + + + + ); + } +}); + +const mapStateToProps = ({index}) => ({ + index +}); + +const mapDispatchToProps = (dispatch) => { + return { + pushPanel: () => dispatch(increaseIndex()), + popPanel: () => dispatch(decreaseIndex()) + }; +}; + +const AppBase = connect(mapStateToProps, mapDispatchToProps)(Sample); +const App = ThemeDecorator(AppBase); + +export default App; +export {App, AppBase}; diff --git a/limestone/pattern-virtuallist-preserving-focus/src/App/App.module.less b/limestone/pattern-virtuallist-preserving-focus/src/App/App.module.less new file mode 100644 index 000000000..23782defd --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/App/App.module.less @@ -0,0 +1,3 @@ +.app { + // styles can be put here +} diff --git a/limestone/pattern-virtuallist-preserving-focus/src/App/package.json b/limestone/pattern-virtuallist-preserving-focus/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-virtuallist-preserving-focus/src/components/README.md b/limestone/pattern-virtuallist-preserving-focus/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/pattern-virtuallist-preserving-focus/src/index.js b/limestone/pattern-virtuallist-preserving-focus/src/index.js new file mode 100644 index 000000000..542a8ac2d --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './main'; + +const appElement = ; + +// In a browser environment, render the app to the document. +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/pattern-virtuallist-preserving-focus/src/main.js b/limestone/pattern-virtuallist-preserving-focus/src/main.js new file mode 100644 index 000000000..7e713a9d7 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/main.js @@ -0,0 +1,22 @@ +import {Provider} from 'react-redux'; + +import App, {AppBase} from './App'; +import configureAppStore from './store'; + +// set default launch path +const store = configureAppStore(); + +const appElementBase = () => ( + + + +); + +const appElement = () => ( + + + +); + +export default appElement; +export {appElement, appElementBase}; diff --git a/limestone/pattern-virtuallist-preserving-focus/src/store/package.json b/limestone/pattern-virtuallist-preserving-focus/src/store/package.json new file mode 100644 index 000000000..3f33f7033 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/store/package.json @@ -0,0 +1,3 @@ +{ + "main": "store.js" +} diff --git a/limestone/pattern-virtuallist-preserving-focus/src/store/store.js b/limestone/pattern-virtuallist-preserving-focus/src/store/store.js new file mode 100644 index 000000000..a96988618 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/store/store.js @@ -0,0 +1,34 @@ +import {configureStore, createSlice} from '@reduxjs/toolkit'; + +const indexSlice = createSlice({ + name: 'indexReducer', + initialState: { + index : 0 + }, + reducers: { + increaseIndex: (state) => { + state.index += 1; + }, + decreaseIndex: (state) => { + state.index = state.index > 0 ? state.index - 1 : 0; + } + } +}); + +export const {increaseIndex, decreaseIndex} = indexSlice.actions; + +export default function configureAppStore (initialState) { + const store = configureStore({ + reducer: indexSlice.reducer, + initialState + }); + + if (module.hot) { + // Enable Webpack hot module replacement for reducers + module.hot.accept('./store.js', () => { + store.replaceReducer(indexSlice.reducer); + }); + } + + return store; +} diff --git a/limestone/pattern-virtuallist-preserving-focus/src/views/MainPanel.js b/limestone/pattern-virtuallist-preserving-focus/src/views/MainPanel.js new file mode 100644 index 000000000..d4dd72096 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/views/MainPanel.js @@ -0,0 +1,35 @@ +import kind from '@enact/core/kind'; +import Button from '@enact/limestone/Button'; +import {Header, Panel} from '@enact/limestone/Panels'; +import PropTypes from 'prop-types'; + +import {PatternList} from './PatternList'; + +const MainPanel = kind({ + name: 'MainPanel', + + propTypes: { + /** + * A function to run on click event + * @type {Function} + */ + onClick: PropTypes.func, + + /** + * A title string appear on header + * @type {String} + */ + title: PropTypes.string + }, + + render: ({title, onClick, ...rest}) => ( + +
    + +
    + +
    + ) +}); + +export default MainPanel; diff --git a/limestone/pattern-virtuallist-preserving-focus/src/views/PatternList.js b/limestone/pattern-virtuallist-preserving-focus/src/views/PatternList.js new file mode 100644 index 000000000..ac8cd7c58 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/views/PatternList.js @@ -0,0 +1,37 @@ +import Item from '@enact/limestone/Item'; +import VirtualList from '@enact/limestone/VirtualList'; +import ri from '@enact/ui/resolution'; +import PropTypes from 'prop-types'; +import {useCallback} from 'react'; + +import css from './PatternList.module.less'; + +const items = Array.from(new Array(1000)).map((n, i) => `Item ${('00' + i).slice(-3)}`); + +const PatternList = ({id, onClick, ...rest}) => { + const renderItem = useCallback(({index, ...restProps}) => ( + + {items[index]} + + ), [onClick]); + + return ( + + ); +}; + +PatternList.propTypes = { + id: PropTypes.string, + onClick: PropTypes.func +}; + +export default PatternList; +export {PatternList}; diff --git a/limestone/pattern-virtuallist-preserving-focus/src/views/PatternList.module.less b/limestone/pattern-virtuallist-preserving-focus/src/views/PatternList.module.less new file mode 100644 index 000000000..6604bc594 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/views/PatternList.module.less @@ -0,0 +1,5 @@ +/* PatternList.module.less */ + +.list { + height: 720px; +} diff --git a/limestone/pattern-virtuallist-preserving-focus/src/views/README.md b/limestone/pattern-virtuallist-preserving-focus/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/pattern-virtuallist-preserving-focus/webos-meta/appinfo.json b/limestone/pattern-virtuallist-preserving-focus/webos-meta/appinfo.json new file mode 100644 index 000000000..136274c72 --- /dev/null +++ b/limestone/pattern-virtuallist-preserving-focus/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.pattern-virtuallist-preserving-focus", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "VirtualList Preserving Focus Pattern", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/pattern-virtuallist-preserving-focus/webos-meta/icon-large.png b/limestone/pattern-virtuallist-preserving-focus/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/pattern-virtuallist-preserving-focus/webos-meta/icon-mini.png b/limestone/pattern-virtuallist-preserving-focus/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/tutorial-hello-enact/.eslintignore b/limestone/tutorial-hello-enact/.eslintignore new file mode 100644 index 000000000..7de9f5fde --- /dev/null +++ b/limestone/tutorial-hello-enact/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/tutorial-hello-enact/.gitignore b/limestone/tutorial-hello-enact/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/tutorial-hello-enact/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/tutorial-hello-enact/LICENSE b/limestone/tutorial-hello-enact/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/tutorial-hello-enact/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/tutorial-hello-enact/README.md b/limestone/tutorial-hello-enact/README.md new file mode 100644 index 000000000..e048055fd --- /dev/null +++ b/limestone/tutorial-hello-enact/README.md @@ -0,0 +1,9 @@ +## Hello, Enact + +The completed Hello, Enact app from the Enact tutorial. + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/tutorial-hello-enact/package.json b/limestone/tutorial-hello-enact/package.json new file mode 100644 index 000000000..e9f68258c --- /dev/null +++ b/limestone/tutorial-hello-enact/package.json @@ -0,0 +1,43 @@ +{ + "name": "tutorial-hello-enact", + "version": "1.0.0", + "description": "Most basic app for getting started with Enact.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Hello, Enact", + "isomorphic": true, + "theme": "limestone" + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/tutorial-hello-enact/resources/ilibmanifest.json b/limestone/tutorial-hello-enact/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/tutorial-hello-enact/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/tutorial-hello-enact/src/App/App.js b/limestone/tutorial-hello-enact/src/App/App.js new file mode 100644 index 000000000..fdb1e9400 --- /dev/null +++ b/limestone/tutorial-hello-enact/src/App/App.js @@ -0,0 +1,29 @@ +import kind from '@enact/core/kind'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; + +import css from './App.module.less'; + +const AppBase = kind({ + name: 'App', + + styles: { + css, + className: 'app' + }, + + render: function (props) { + return ( +
    + Hello Enact! +
    + ); + } +}); + +const App = ThemeDecorator(AppBase); + +export default App; +export { + App, + AppBase +}; diff --git a/limestone/tutorial-hello-enact/src/App/App.module.less b/limestone/tutorial-hello-enact/src/App/App.module.less new file mode 100644 index 000000000..ea7063440 --- /dev/null +++ b/limestone/tutorial-hello-enact/src/App/App.module.less @@ -0,0 +1,3 @@ +.app { + font-size: 48px; +} diff --git a/limestone/tutorial-hello-enact/src/App/package.json b/limestone/tutorial-hello-enact/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/tutorial-hello-enact/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/tutorial-hello-enact/src/components/README.md b/limestone/tutorial-hello-enact/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/tutorial-hello-enact/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/tutorial-hello-enact/src/index.js b/limestone/tutorial-hello-enact/src/index.js new file mode 100644 index 000000000..57c20e6fd --- /dev/null +++ b/limestone/tutorial-hello-enact/src/index.js @@ -0,0 +1,19 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +const appElement = (); + +// In a browser environment, render the app to the document. +if (typeof window !== 'undefined') { + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/tutorial-hello-enact/src/views/README.md b/limestone/tutorial-hello-enact/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/tutorial-hello-enact/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/tutorial-hello-enact/webos-meta/appinfo.json b/limestone/tutorial-hello-enact/webos-meta/appinfo.json new file mode 100644 index 000000000..8fa00b30d --- /dev/null +++ b/limestone/tutorial-hello-enact/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.tutorial-hello-enact", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Hello, Enact", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/tutorial-hello-enact/webos-meta/icon-large.png b/limestone/tutorial-hello-enact/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/tutorial-hello-enact/webos-meta/icon-mini.png b/limestone/tutorial-hello-enact/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 diff --git a/limestone/tutorial-kitten-browser/.eslintignore b/limestone/tutorial-kitten-browser/.eslintignore new file mode 100644 index 000000000..7de9f5fde --- /dev/null +++ b/limestone/tutorial-kitten-browser/.eslintignore @@ -0,0 +1,3 @@ +node_modules/* +build/* +dist/* diff --git a/limestone/tutorial-kitten-browser/.gitignore b/limestone/tutorial-kitten-browser/.gitignore new file mode 100644 index 000000000..49c033854 --- /dev/null +++ b/limestone/tutorial-kitten-browser/.gitignore @@ -0,0 +1,15 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +node_modules + +# testing +coverage + +# production +build +dist + +# misc +.DS_Store +npm-debug.log diff --git a/limestone/tutorial-kitten-browser/LICENSE b/limestone/tutorial-kitten-browser/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/limestone/tutorial-kitten-browser/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/limestone/tutorial-kitten-browser/README.md b/limestone/tutorial-kitten-browser/README.md new file mode 100644 index 000000000..79dbc3406 --- /dev/null +++ b/limestone/tutorial-kitten-browser/README.md @@ -0,0 +1,9 @@ +## Kitten Browser + +The completed Kitten Browser app from the Enact tutorial. + +Run `npm install` then `npm run serve` to have the app running on [http://localhost:8080](http://localhost:8080), where you can view it in your browser. + +--- + +This project was bootstrapped with the Enact [cli](https://github.com/enactjs/cli). diff --git a/limestone/tutorial-kitten-browser/package.json b/limestone/tutorial-kitten-browser/package.json new file mode 100644 index 000000000..3219c6093 --- /dev/null +++ b/limestone/tutorial-kitten-browser/package.json @@ -0,0 +1,44 @@ +{ + "name": "tutorial-kitten-browser", + "version": "1.0.0", + "description": "A kitten browser app to introduce some intermediate ES6, React, and Enact concepts.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Kitten Browser", + "isomorphic": true, + "theme": "limestone" + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "@enact/webos": "^5.0.0-alpha.4", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/tutorial-kitten-browser/resources/ilibmanifest.json b/limestone/tutorial-kitten-browser/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/tutorial-kitten-browser/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/tutorial-kitten-browser/src/App/App.js b/limestone/tutorial-kitten-browser/src/App/App.js new file mode 100644 index 000000000..e0ea04387 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/App/App.js @@ -0,0 +1,75 @@ +import kind from '@enact/core/kind'; +import {Panels} from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; +import Changeable from '@enact/ui/Changeable'; +import PropTypes from 'prop-types'; + +import Detail from '../views/Detail'; +import List from '../views/List'; + +const kittens = [ + 'Garfield', + 'Nermal', + 'Simba', + 'Nala', + 'Tiger', + 'Kitty' +]; + +const Sample = kind({ + name: 'App', + + propTypes: { + kittenIndex: PropTypes.number, + onKittenIndexChange: PropTypes.func, + onPanelIndexChange: PropTypes.func, + panelIndex: PropTypes.number + }, + + defaultProps: { + kittenIndex: 0, + panelIndex: 0 + }, + + handlers: { + onSelectKitten: (ev, {onKittenIndexChange, onPanelIndexChange}) => { + if (onKittenIndexChange) { + onKittenIndexChange({ + kittenIndex: ev.index + }); + } + + // navigate to the detail panel on selection + if (onPanelIndexChange) { + onPanelIndexChange({ + panelIndex: 1 + }); + } + } + }, + + render: ({kittenIndex, onPanelIndexChange, onSelectKitten, panelIndex, ...rest}) => { + delete rest.onKittenIndexChange; + + return ( + + {kittens} + + + ); + } +}); + +const AppBase = Changeable({prop: 'panelIndex', change: 'onPanelIndexChange'}, + Changeable({prop: 'kittenIndex', change: 'onKittenIndexChange'}, + Sample + ) +); + +const App = ThemeDecorator(AppBase); + +export default App; +export { + App, + AppBase +}; diff --git a/limestone/tutorial-kitten-browser/src/App/App.module.less b/limestone/tutorial-kitten-browser/src/App/App.module.less new file mode 100644 index 000000000..f9db12c85 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/App/App.module.less @@ -0,0 +1,3 @@ +.app { + /* styles can be put here */ +} diff --git a/limestone/tutorial-kitten-browser/src/App/package.json b/limestone/tutorial-kitten-browser/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/tutorial-kitten-browser/src/components/Kitten/Kitten.js b/limestone/tutorial-kitten-browser/src/components/Kitten/Kitten.js new file mode 100644 index 000000000..8711aeb90 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/components/Kitten/Kitten.js @@ -0,0 +1,61 @@ +import kind from '@enact/core/kind'; +import Spottable from '@enact/spotlight/Spottable'; +import PropTypes from 'prop-types'; + +import css from './Kitten.module.less'; + +const SpottableDiv = Spottable('div'); + +const KittenBase = kind({ + name: 'Kitten', + + propTypes: { + children: PropTypes.string, + index: PropTypes.number, + onSelect: PropTypes.func, + size: PropTypes.number + }, + + defaultProps: { + size: 300 + }, + + styles: { + css, + className: 'kitten' + }, + + handlers: { + handleClick: (ev, {index, onSelect}) => { + if (onSelect) { + onSelect({index}); + } + } + }, + + computed: { + url: ({index, size}) => { + return `//loremflickr.com/${size}/${size}/kitten?random=${index}`; + } + }, + + render: ({children, handleClick, size, url, ...rest}) => { + delete rest.index; + delete rest.onSelect; + + return ( + + Kitten +
    {children}
    +
    + ); + } +}); + +const Kitten = KittenBase; + +export default Kitten; +export { + Kitten, + KittenBase +}; diff --git a/limestone/tutorial-kitten-browser/src/components/Kitten/Kitten.module.less b/limestone/tutorial-kitten-browser/src/components/Kitten/Kitten.module.less new file mode 100644 index 000000000..79a2a5402 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/components/Kitten/Kitten.module.less @@ -0,0 +1,12 @@ +@import "~@enact/limestone/styles/mixins.less"; + +.kitten { + display: inline-block; + padding: 24px; + text-align: center; + background-color: transparent; + .focus({ + background-color: #e6e6e6; // light-grey + color: black; + }); +} diff --git a/limestone/tutorial-kitten-browser/src/components/Kitten/package.json b/limestone/tutorial-kitten-browser/src/components/Kitten/package.json new file mode 100644 index 000000000..048345b89 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/components/Kitten/package.json @@ -0,0 +1,3 @@ +{ + "main": "Kitten.js" +} diff --git a/limestone/tutorial-kitten-browser/src/components/Kitten/tests/Kitten-specs.js b/limestone/tutorial-kitten-browser/src/components/Kitten/tests/Kitten-specs.js new file mode 100644 index 000000000..e53666eb3 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/components/Kitten/tests/Kitten-specs.js @@ -0,0 +1,34 @@ +import '@testing-library/jest-dom'; +import {render, screen} from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; + +import Kitten from '../Kitten'; + +describe('Kitten Specs', () => { + test('should render a Kitten with content', function () { + const content = 'Hello Kitten!'; + + render({content}); + + const actual = screen.getByText(content); + + expect(actual).toBeInTheDocument(); + }); + + test('should callback with index when clicked', async function () { + let index = 0; + const handleSelect = jest.fn(); + const user = userEvent.setup(); + + render(); + + const kitten = screen.getByTestId('kitten'); + + await user.click(kitten); + + const expected = index; + const actual = handleSelect.mock.calls[0][0].index; + + expect(actual).toEqual(expected); + }); +}); diff --git a/limestone/tutorial-kitten-browser/src/components/README.md b/limestone/tutorial-kitten-browser/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/tutorial-kitten-browser/src/index.js b/limestone/tutorial-kitten-browser/src/index.js new file mode 100644 index 000000000..191b6cf24 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/index.js @@ -0,0 +1,20 @@ +/* global ENACT_PACK_ISOMORPHIC */ +import {createRoot, hydrateRoot} from 'react-dom/client'; + +import App from './App'; + +const appElement = (); + +// In a browser environment, render the app to the document. +if (typeof window !== 'undefined') { + // 'root' div is provided by Enact's HTML template + const container = document.getElementById('root'); + + if (ENACT_PACK_ISOMORPHIC) { + hydrateRoot(container, appElement); + } else { + createRoot(container).render(appElement); + } +} + +export default appElement; diff --git a/limestone/tutorial-kitten-browser/src/views/Detail.js b/limestone/tutorial-kitten-browser/src/views/Detail.js new file mode 100644 index 000000000..6900f2dbf --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/views/Detail.js @@ -0,0 +1,40 @@ +import kind from '@enact/core/kind'; +import {Header, Panel} from '@enact/limestone/Panels'; +import PropTypes from 'prop-types'; + +const genders = { + m: 'Male', + f: 'Female' +}; + +const DetailBase = kind({ + name: 'Detail', + + propTypes: { + color: PropTypes.string, + gender: PropTypes.oneOf(['m', 'f']), + name: PropTypes.string, + weight: PropTypes.number + }, + + defaultProps: { + color: 'Tabby', + gender: 'm', + weight: 9 + }, + + render: ({color, gender, name, weight, ...rest}) => ( + +
    +
    Gender: {genders[gender]}
    +
    Color: {color}
    +
    Weight: {weight}oz
    + + ) +}); + +export default DetailBase; +export { + DetailBase as Detail, + DetailBase +}; diff --git a/limestone/tutorial-kitten-browser/src/views/List.js b/limestone/tutorial-kitten-browser/src/views/List.js new file mode 100644 index 000000000..11b7b4ff7 --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/views/List.js @@ -0,0 +1,33 @@ +import kind from '@enact/core/kind'; +import {Header, Panel} from '@enact/limestone/Panels'; +import Scroller from '@enact/limestone/Scroller'; +import Repeater from '@enact/ui/Repeater'; +import PropTypes from 'prop-types'; + +import Kitten from '../components/Kitten'; + +const ListBase = kind({ + name: 'List', + + propTypes: { + children: PropTypes.array, + onSelectKitten: PropTypes.func + }, + + render: ({children, onSelectKitten, ...rest}) => ( + +
    + + + {children} + + + + ) +}); + +export default ListBase; +export { + ListBase as List, + ListBase +}; diff --git a/limestone/tutorial-kitten-browser/src/views/README.md b/limestone/tutorial-kitten-browser/src/views/README.md new file mode 100644 index 000000000..e18ab3d1c --- /dev/null +++ b/limestone/tutorial-kitten-browser/src/views/README.md @@ -0,0 +1 @@ +Composite components that make up a distinct view go here \ No newline at end of file diff --git a/limestone/tutorial-kitten-browser/webos-meta/appinfo.json b/limestone/tutorial-kitten-browser/webos-meta/appinfo.json new file mode 100644 index 000000000..ea9ab5084 --- /dev/null +++ b/limestone/tutorial-kitten-browser/webos-meta/appinfo.json @@ -0,0 +1,12 @@ +{ + "id": "com.enactjs.app.tutorial-kitten-browser", + "version": "1.0.0", + "vendor": "LGE-SVL", + "type": "web", + "main": "index.html", + "title": "Kitten Browser", + "icon": "icon.png", + "miniicon": "icon-mini.png", + "largeIcon": "icon-large.png", + "uiRevision": 2 +} diff --git a/limestone/tutorial-kitten-browser/webos-meta/icon-large.png b/limestone/tutorial-kitten-browser/webos-meta/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..d237e9fb1ec8d3d721bdc64ddc52ed7419ae43c3 GIT binary patch literal 4151 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 K+D)3y3I73^C56KP literal 0 HcmV?d00001 diff --git a/limestone/tutorial-kitten-browser/webos-meta/icon-mini.png b/limestone/tutorial-kitten-browser/webos-meta/icon-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..9771fac4c525609c12f7ecea8f7c429724ae69ec GIT binary patch literal 2004 zcmV;_2P^oAP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Lv^1#EbBp~q)m*Mh literal 0 HcmV?d00001 From e85d1723753c1319eb93ffd3c73944a3f9fc81be Mon Sep 17 00:00:00 2001 From: "taeyoung.hong" Date: Tue, 18 Mar 2025 18:34:33 +0900 Subject: [PATCH 5/5] remove .eslintignore files --- limestone/all-samples/.eslintignore | 3 --- limestone/pattern-account-icon/.eslintignore | 3 --- limestone/pattern-analytics-webostv/.eslintignore | 3 --- limestone/pattern-dynamic-panel/.eslintignore | 3 --- limestone/pattern-layout/.eslintignore | 3 --- limestone/pattern-locale-switching/.eslintignore | 3 --- limestone/pattern-ls2request-camera/.eslintignore | 3 --- limestone/pattern-routable-panels/.eslintignore | 3 --- limestone/pattern-single-panel-redux/.eslintignore | 3 --- limestone/pattern-single-panel/.eslintignore | 3 --- limestone/pattern-video-player-custom/.eslintignore | 3 --- limestone/pattern-video-player/.eslintignore | 3 --- limestone/pattern-virtualgridlist-api/.eslintignore | 3 --- limestone/pattern-virtuallist-preserving-focus/.eslintignore | 3 --- limestone/tutorial-hello-enact/.eslintignore | 3 --- limestone/tutorial-kitten-browser/.eslintignore | 3 --- 16 files changed, 48 deletions(-) delete mode 100644 limestone/all-samples/.eslintignore delete mode 100644 limestone/pattern-account-icon/.eslintignore delete mode 100644 limestone/pattern-analytics-webostv/.eslintignore delete mode 100644 limestone/pattern-dynamic-panel/.eslintignore delete mode 100644 limestone/pattern-layout/.eslintignore delete mode 100644 limestone/pattern-locale-switching/.eslintignore delete mode 100644 limestone/pattern-ls2request-camera/.eslintignore delete mode 100644 limestone/pattern-routable-panels/.eslintignore delete mode 100644 limestone/pattern-single-panel-redux/.eslintignore delete mode 100644 limestone/pattern-single-panel/.eslintignore delete mode 100644 limestone/pattern-video-player-custom/.eslintignore delete mode 100644 limestone/pattern-video-player/.eslintignore delete mode 100644 limestone/pattern-virtualgridlist-api/.eslintignore delete mode 100644 limestone/pattern-virtuallist-preserving-focus/.eslintignore delete mode 100644 limestone/tutorial-hello-enact/.eslintignore delete mode 100644 limestone/tutorial-kitten-browser/.eslintignore diff --git a/limestone/all-samples/.eslintignore b/limestone/all-samples/.eslintignore deleted file mode 100644 index 7de9f5fde..000000000 --- a/limestone/all-samples/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-account-icon/.eslintignore b/limestone/pattern-account-icon/.eslintignore deleted file mode 100644 index 93c033154..000000000 --- a/limestone/pattern-account-icon/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-analytics-webostv/.eslintignore b/limestone/pattern-analytics-webostv/.eslintignore deleted file mode 100644 index 7de9f5fde..000000000 --- a/limestone/pattern-analytics-webostv/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-dynamic-panel/.eslintignore b/limestone/pattern-dynamic-panel/.eslintignore deleted file mode 100644 index 93c033154..000000000 --- a/limestone/pattern-dynamic-panel/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-layout/.eslintignore b/limestone/pattern-layout/.eslintignore deleted file mode 100644 index d9c7b0a51..000000000 --- a/limestone/pattern-layout/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* \ No newline at end of file diff --git a/limestone/pattern-locale-switching/.eslintignore b/limestone/pattern-locale-switching/.eslintignore deleted file mode 100644 index 7de9f5fde..000000000 --- a/limestone/pattern-locale-switching/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-ls2request-camera/.eslintignore b/limestone/pattern-ls2request-camera/.eslintignore deleted file mode 100644 index 7de9f5fde..000000000 --- a/limestone/pattern-ls2request-camera/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-routable-panels/.eslintignore b/limestone/pattern-routable-panels/.eslintignore deleted file mode 100644 index 7de9f5fde..000000000 --- a/limestone/pattern-routable-panels/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-single-panel-redux/.eslintignore b/limestone/pattern-single-panel-redux/.eslintignore deleted file mode 100644 index 93c033154..000000000 --- a/limestone/pattern-single-panel-redux/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-single-panel/.eslintignore b/limestone/pattern-single-panel/.eslintignore deleted file mode 100644 index 93c033154..000000000 --- a/limestone/pattern-single-panel/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-video-player-custom/.eslintignore b/limestone/pattern-video-player-custom/.eslintignore deleted file mode 100644 index 7de9f5fde..000000000 --- a/limestone/pattern-video-player-custom/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-video-player/.eslintignore b/limestone/pattern-video-player/.eslintignore deleted file mode 100644 index 7de9f5fde..000000000 --- a/limestone/pattern-video-player/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-virtualgridlist-api/.eslintignore b/limestone/pattern-virtualgridlist-api/.eslintignore deleted file mode 100644 index 93c033154..000000000 --- a/limestone/pattern-virtualgridlist-api/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/pattern-virtuallist-preserving-focus/.eslintignore b/limestone/pattern-virtuallist-preserving-focus/.eslintignore deleted file mode 100644 index 93c033154..000000000 --- a/limestone/pattern-virtuallist-preserving-focus/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/tutorial-hello-enact/.eslintignore b/limestone/tutorial-hello-enact/.eslintignore deleted file mode 100644 index 7de9f5fde..000000000 --- a/limestone/tutorial-hello-enact/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/* diff --git a/limestone/tutorial-kitten-browser/.eslintignore b/limestone/tutorial-kitten-browser/.eslintignore deleted file mode 100644 index 7de9f5fde..000000000 --- a/limestone/tutorial-kitten-browser/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/* -build/* -dist/*

    l30C>9hiss7Iq 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 abb6qV2v^Kl_BU9!gV%-^EtIugfB)IYdcU;* literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel/assets/images/mural.jpeg b/limestone/pattern-single-panel/assets/images/mural.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..205b742316e03370b906cf74be746fbfa2980919 GIT binary patch literal 45224 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 (m=q!;duuIure4R$3E=AJ zyS}#8c`|kr8Zr!FRB!7$WWW2X8nj8hl~AbSK|SXQkMGx)YAj!Xce>N-zNr^aN3oA} z&Fs`(vCMSIoTzsEd$a$;Ma^E>LG>0LR7pd7#>gZ@G=d;8sjN!xT!@4GC3O}BKTS6g ziiv-`OaWDP!EGKEt+kx%B2@!tq_sH-5vvy&p**2=fY`sl-O0l~I#3OM(lgM>HnOv@ zC`>v-DhFaVB*XCDvI(1nmlPWQl~yf}lP_J3TZJWq=erZf9~Y}TSNJM69U%IS=AFvC z+)01wBUT+opZke6An&KbufHjfHl5VLwQC2DA!a7cLvjP9CNV#K4_v(Rv`UH%*3D)&X{2tS4^ zrL61mx*luH5yRm!%!A=od>8rBE<-tVTvqG51PgA&4-Bc`+a$V7KXC|){F|RQUArI$ z#@3t@H(I^=zKCz>Mjj?~E#MhOPu?q}>i3?gU)97Xl!N>Rv*@R)_C^yD_kq3{MpdG7 zvF-6cU|NqEf}Wr~N;=_m!<|#=TXBEsv_{Q`tksV%M%i1~!}9-dE(l&0i1=sbs35yy znEyyB!yS|$GlKx=7p2G$X;&x&AU7!;-m~VXWfZUuXl0qLm2wr@cEtkr4f$eQB4ZNd zSl#8W+S~jwD+%jG$2RD!+8lNiFaMI*%Q@izs|e>6!lmmuVB6=Naqr+F1M*daG_FmJ;FSkp|J%^Tre(&{?Z^1UO$mx-QHtutxeBhT{7D|lrzf@1EM zumdwt9)!v|uxW#TDoucbsNeoFRhJeZkZgbQHgE}VLglW%Obj-%;e&3TnZu?WLC=lx zG)T^k8=N1ynwebc1|Za?%qzJ>;SuR8*|p_cs9{dwULTp77hXr)!W(;8{xn2f{d4+; z3Rmu0%TRhBv|_EBCg%kEB@aJv6c#&+itV;J<9A@zrM?s{iHBI-=#6{ohR}B^gvfoe zy$YZVEttBj;tkOg)5u^<&8b7WTE;$e050u9BK@}?a->R#H!(s+{{UE3PAe7E9{i!1 z?yco6#}2Z=Q@Qs=di|rSubjdtyb6{x7NRxGDlo*^hG3SmZgUgN(G$idq#`!%B;$&g z#D3C>^wjM@K@z!$`$3t4N=0f!JsjFoyfLi)?3zF*WjBuY7zM=DBS4Ka2E8l zZk65wZTb@29IQ#;|nF!)LN!+jGRnS-6bDfyj|YYu?J4_)f?K-QgzzzlhaXbxAq3ifB8T z*&msA7?r`8h*94Jd9S&;U%A?nF#BeiugqGkpAk5LDxb*^!*!=|cA*^`sgmfH>^?|S z{1Uwnscq0=Xzd{W0Vt-7#{upXCa)~Gd!FO)g}{~+er86K!&1;;>-^IYft)2r234x& zTftdNqK~L!Yafyj$Q-qJn2lZ0@C)W@b-wakS;-AbN1U~8Cy2-wAt@AuRz| zq|p~(l);0nu(_Hu{7MOKt7CbO57iEVHz(>gQ^9TyI-&Z#O19fNX=d7&=H7%9b+vEa zCC-b%a)yLFzyRB;^K== zyZ)xM5wg&{A&Arf@frwW$%jA08EftukNl9mG5E~>kV~BUl*^n)7@_8W)lR?U)GPZR z)J}z?Gi^HfR$-e~oRHNoBfMin!^rb3qp83t|BYw!Ia$`tCgIYBbPO!m2y6Ad%CcbiTPsSsSs-UK|5k+8iY?k|D?b*s9)L6aTV4$y+dcVJ&t^u!<`b*mBp z_3#Rmusliwh`k`7$5<MtFasD8Uu%+$_uZ?lk zK~HGl&Z6ZI(i``b#8Pmw^_cX`)pVcS%reU}3^D@&LGe$tAn@%oMNF@yVsf;bm)g(T5`Gn5?V zG~N4P85{D)zY$ZGuI&@mgPD+=z+b_*v+($SP3gq=rGnwt!FYR&Ey*i03o`=%aD=Fd zRSLpJrPGm^M}~17jVFcO7}BZhJi^~!AX0?j4<*h6+Lf6`-n+zYE7>ii;|x@sW$-Wn8ub4F z6A%l{ZLIdF@O{#Z%@Czy! z1}$o%1EATFFfEi}Nb7p^pTY^V4-qY4GQ-n4oAY%X!^-GT%|37ltZFvN3dgeq!)=E^ zeq!io0}l5MvF5(>3zNZ={KB~|2C?jb7nhbUcb+pdR~4vdh)J>G9~MK2kpOp{IQJ>H zGTmjDiOfqYOX4%Bq!lUvy_mOX*SXMM1#vF>v?ga{+`i9U7X3laA<2GFNH|aoLrl-w ztC$a?QJ;{w7#~n0hW3f=tLad4E?gKQta2ydU`45dr6;t|-@k|=(^F<{ka_|WRWm3Z z;m&vPCTD)~@r*!O&p0%|6Tc)GmDL_j<*(J-@IXSK(IB&&2P73b_{`jiI9islIu>`E&4<|k-c zS47QwdCVZwWHmer=3J$1;-MZ}mWM^aFaEz!ULF_|Cf1E+L1&f#th?M>XR$QN*6E!9 zG?{)BE<&?UsqP1oD128vV$TOs=PIrVOPv#4Ak27F$rrgV7cINarKz(Tm*J+p&)JhK zTQWkBIeHDm?%<#7wCJ8<$WmNUu-m1ClQ7Lq86ztEwS1#b6BGgBRh$602;IR z6q%l}T){sqDhMsf-ZF(Q48_wZ_XL9EzLRjf^AN(GyCzLxSj0`Xxnd&1f7njdwJp1( zF)F3zp`U!jTmCZDu)dy>`knzeVcp<9=PEqcSoPCftQP>*j13fRW8{Z!p|g@Kj#EciCcVW8D(h&NaYH0Lq$L6#YX z40jj*07Ntq#*}5y_3gJ1L8~n0P^{{mpR@%9xk8VJTHbbeZ=&Jt7Qbfl%-XiA^$l%NBc0QRX|% zidysVQ$E_4S#NUL-lpYTKnYT)^C^chnO8$ma%h0iG2qtSuKcs(+D9GLucbQ#WD;ypdv_v4r$5`nsvRK@xs2bl8 zCRZ@1-DPmbVwxT^EV>S-SoITi0a!mMg@c{AnA1GfKv3Iss6r^I76(+B z5wzKBCmxI&B5_+LsFbFc_vKg_pufy2BgWl9U^~s~F$`BDkIYFfTT6+9*xfe<11_E- zcKypd9$_%dZz*!$2S4piXjpRApu_pgUE=ajWKJ6U^8#Vv6$PMbl&>+C6?t|rYnv3s z(-%><%Ax(UIV8&IQ)6mWgKb?@x<059x4$XK{-WV&)S4AA3^&OSY>vbEmhVR8(^Fsi z<^-{*m4;@18kSJH;-!2(rcme~QnnXVVsArts7g9(v_{S~689IE!?tuHKM+_wO&0aT z6H(Suuc#?x2vMABJ3*b8Vp_`{5K^iux9r3Lq4$6mh`znyNLB}-_3*)4kiL+p0*P;$ z${=&n1Zq5anr)hxMi3%nJD7e2p5Wx#_bjL!_+m7;OV_~uAY~0z&h?NF_C?JO!){xZ zq2gfF1A-Bf;+bDc;F>>F=nS3zN=-r9eBj*> zyDRvGEt<83W4yfA?h>cxBSoj_2vetdSBxx?763(IS@xOd;#JBpqsbSED)4g)liWnL zLfzt%iY~Oo0fSg_O3$cZPwGSTgLL=Y9Mo&fuJ014{-&`eHO(|&)1rl-tjj$^icM{kHBf`$2(^De1& zFp;g@d{+E2&%`M-55(j!OdhM^D{AQUgPeGDo{{vQ{BBv}<3=Ga`S?|}Ll_7*hcfHm z@wOxv(l~A%onvD+e~C)IB6~FcB@n!*^m<3ej!AnAS&uT1b_??X$FhAd>D=cy7cVmgErMItGFs^ZqG`QL16Yf#)9N78E|`_9E06G(Ca5~1#gx;d5OxTi z6JeKTQiAE*m)r@u4V*q9wjJA3A~y&I>sSmUPxX8;cI-LKU@PQyjT&K=W>tE*z&?M@ zSwrcB2yV4<^~AK+bJkr%xD{-I_op`KcMY4)xq3%a_>$8dkK70QAcg)E4VU4$Vv9V@lT5N|0yx4qGz~&j5qw0^5Ioa=~yS#5(aV@_@U{PrVQFa6D^sYj90{Nw_|Ccx%zQyL#&HQ#ZxD z@WI~$hTxrm&oSF!y~R~l_XS;_k~iUt^?&bu`9#4@Z*WcwafsHJE)Bj&jz_~0M=q{d z>UqYEH&cc_7`QMx`0V#lhC?ni9>j0Dk9tg;TZ~)av_?UWw>wbft3n+w4R~TdhYEiZ zbc?u8$01U?1)S5w7~9|>$1&xFe^!gSQul%%Bs!Ag27{m@A$s~ioXaRD7{p&#Wi8V> z!upwR`tgZquKLziR(YFp>dpK{U~q=2bwK4G)|A`&o(sdjGJ~!n89icY zX_QDJ2T!7*EgY8RjMUq#u`}~j@|4QliMATV>#DIHd=1gMn_;V=)@BG5jjpHaHscj- z%+oKlK)d`xe?sNFO4^sxHKN<7ik5fGyA6<|WNO@?S0l_pl5I9z%Bq`KP%AE`Vj$-m>j5Hrb(NeqMf8Yhc1(q! zzfqxgf7=QjiHX12EV+-1__+T7f`Q>Q2&Nl6H3rnjFj#SpF#-PoItID{+*_{G5jIX> z4wDsCn4boC3u4TOQHW=z8y+Q*m0Tr!7=hv_-6i}!puehRKBNPJET`B&N=w@{ffKaM zrP_}V2#~OwrsL(B=+vT=?|GJQ=#@HGf>Wff@`{dWo@E(WWl*oFb^E@N)k*Y4(xaT* z$q~yRsf7!9-n+rHWt#s0FtOo>s4f$-VzgRI>k*T5x6BNTR7w={x!oxcluDHdQP~G=hrP3Ok|HnICSr1ECkI&T9vvC+Mno-cFlxgEukpn;DOb7LZQs;AdgPP=+qc3_jm!Kl8~La&5mn`W7UhhS`-FVdj#*NrYbN}_ z>V<2VheT{I>SM3$i{`cFDQD|1cYgsFv)pj6f$@dhGK*OKrFs0)Hwlc>fO7VfkuOLC zfE-te^fi(Qesb`PIbvKi~4uJadnUN z;ty8Xc1G}ZT;>3(ubVLeM(j?`(T}6ez<*6;l@>8We+4mPtgttzI8E{SmfMMQiEfZs zG;RXrjMU(0x&9*b?R-w0%I5`D(avKRo7}9gs$i0eQ{!;A_@t$zwv_3d&uDlh9byrC z7+f%m)-eiy;3B_L!kM&C_`&c?+{J5$P@FLob$_^9bb(}+z#Nqx%_Ycx=1`JIAnTv+ z5n%iRM|?n|Nh|IJ)r_LnBKWwFgkQ--eB8U;N(|1SSMT9SzF{cs@(D7b4JnD3sOeB? z!^nRkGv5-%yH}k~_g7>+QW0NABvTNDQ%lC!G z!O?7gxrn$ir}&GHqY&3u%P<1j(3gQxtm0x7`Rq{7Gk?Xm=i9$N(q%GSd{^eON4nQNP(s6GY;gf-XVnQrDaiT zvzMN-<5V#afvKq9@=RjD<}$%+p0fcB*(?t-po7IRer1dgRLo<#o2RLHZ~TA%!~iD{ z0RRF50s;a90RaI40RaF20RRypF+ovbaekItfIbn zKmpd$j@G^eC@ld%m5^@j3)g|Hhzrd{Lj$l_Lc}FicRt>Y;P=T0Uh8;ONOGFzQm`T@X>Y!PZA2>Q#jDFfCi? zSwRRg_DeR!X+ADFa`&i|wXTg~qhr6RQwYb2An$R&Wkv(Bvpd;mCto<`IJA(X%Mp)k>$P+ZM4{LJ&XW|?+=0s;b?jODbbujyXm*X3-b=1}U^=!_#*++mif z14#S>q$&_gL<6c(cRB|L{f z;DOfffEbLrRGU*KnMJ}G@JUp5_MAWhkRDH)j8C1w3&A#=>?Q58>5s>Z5l~VZs!L{H z^q3F4F<6G3pQ#&3ZaN8?mAFeOE>PfvETa+Sr5eeJUjgwCvW8wMikI{B$F`kqL)FU# z295~O$SJ`D*7%^r1~-pv&G1A*7hJ$pHk~I-Ia3NRnL`v`2n_&q6%{xoi~~S={0imn|;OLA(qqWWY~(Nhfi z5f$#81qHB)Cd)8}AM=Gw)zx6livtGcQ7kR3ShdFqcR476Ye_={x{dpc11^gv?xl2LTt!ISDE`~-MjgVUE&Z0+o45{3Dqv-t6jclzHCPF~P6n)mc@oP3@^LlFdgtk5 zSwe4=V+$Qc06^&|(EMCTmfK!u!}*1-61$cIYGoBEt`a1?kEUKlaI*>DvJo}u5&@-w zK&ikxjkpC~M;Yz}3Npxrrey{=>f@;TlJoLr0cqI+j_w3j8Y{t-iVE^*CFAH(VoEGD zf4aDoii^N_lutkfuqw{7N+l^loc!Wi=7VM-rDNwX8R!8yk?ziLrc)Kj7fl`4)}~uqZII(COGE9oeE)<-UVX2S(vCfl%;w} z?y))?RC86-w5yEnzg*fl%eI-Xe}VW&(Zn8aTJc7SQo@Au6WUXJ!#R@rMXWYH*yQ_- zs!;wa2px*5-9?B+SyUi=i~TcUm&Jm;DVW-&QjkRKE>TJhRU9moZMG zN-L((H8E|4hncD!1j^dmr4J<9pm~rJLaZ#$n}ItB9tcN00IS|$aa&e+QP|x zeF!X`psut93a&RT79z4;FxB`~ht?tptWWZx7+#*@coS@{BA&?Xx0G;3gc_(57_F`R zOF;moLz8%d7Ybizu?2+tyPB*lt3zZ5GPhs9ugoObjkWz37xhMi<}MRtFg#HoC|5!w z#Ar*m`vsSnGV-a+Dn=w+@ED!ekXDjjn-cOtQ*@pn)Tw6tVpY))ocNXl40E6p5(mT! z=yL&r3szF2=}&48se%ppzyp{YUpF$4gUyi(kA+Ks3N}!3`-!X2Ezmv!$_mlH?VXvQ;LCl5mgrq=)NL%OB!;E(*rMpI3R!+AmCnw%^_9PLSk)} z<$nd-tK=q-JryjTC_-FH;9XrP{041We1aAT2box>>-I`V#7l1A35`vMNJ0wH45rqy zmk8aGleIv_CAeIsmB#IGdfgU3wUFvJg`zt}?l55jQNOH;een*Zp5r~A=2KuPNKM2X zOM1s`Ko(W2Ui8e->6N>V!^u$=OLPY+cx=J^DH}7gNA3*UD(`)0FhVvC012U7N{mB< zGD8|(a|o4MHA;&GhwdZIg>K0lTHp#r$7rn<(HRkSiiQRZ7Oj419%)b06_nm-u>6xR zh_D`u5ca&&bv=^z=$Qx9-dtEb`!s}vl)#ueDY?2vWCE8^or2aUwxevOo8Dn!fKaIAhH=0Ms_Zwh4xn5JhyY51 zDD;s{5e)|Fuh4|H_=WhkWYAwI2iTU8MQjt}vs6h}no7q`x3;^Ag}elOPyG;!GQGcDV(5RzgE`d_UATFGUx-6b_#N~}BRqJ6TYV^vQ zL&=#C7`{kGsxVoeV<3|5(!qn*k?SgI_>a*_qhtd?u^+r!D(!Atbd2qc(dAJIV^Fs& zpwR~qLQArR*Aa6F1g$xWU*RhXJ3R|EaqGJ zm-tw*4{58;zX4Jb+#l4Lfkr!_5ldk--J}8!J z_{ZSD-K{Yrt~M3I7o{NCzKH_kQ1ighLL290TiA%o4z}-#5)k7)30MU|i;pZKHA;eC zyk<147Bm;>H_X^n%N2GDaL=gRn6->+RJy73iu+$d1kUs|U?&AuPz6ShW>zwAXLU~Seg@<^3YhT8e*jy z5cP|fst)1?J1p*bhceoTyP_0;AqPejB3`I3v3WgeG)AGDas%5dPz$2+z!soNg$VLy zU*X-TmN6QkEFR1S8qQ!s_T+GZUYG*hN&reFG?1!bxC6K;u$}EyZ*uJ`ts6$iG{EBG zvFcPhX9m_Z-69~DMg2@^g8E-rgfcv^`(s-N63|fe)S!z!!f7qPqFll+{{R^R3uUzr z#0`Qxn_y$tNeFAgzp%`sRmmi9BBc>ud(=ILh5D5-5h+a%BivEBzINWJ`AcA`s@)<{ zVNeqeH*mVM60qU@hmm8LCT!l}qB`%h5obk$Fh;ondsZdVlZ`=@LYBg!p6w;k7ms5q zuc}Mjjuuo2R)ok(SFu2eOX|mKC%eNEXbNn+aVUQpVv9uj#sF_(>Q+|8yhET3t)MYB zL0@v!NH$ovo*>?f0F~+wO0+PJmJ#L<80r$tJFLF|fxPMst-j?(Z4`t`M6ru6;u9v- zAp(Y0JizT7)N%#9ER~69q5ecFhU+OF=*trttv*9*64itUMCcsT)eclv682X=oCqE3PBKf&gH)WELoep~PSsRwYA* z9?=w7))syfF%>pN0kr;uF-4WE7+vX>rx01>5je&&H!b`HOTH<2geyP|tSUgUGBZDn z#ATPz%d(3f#S=0SP0-|yhh@wMHQ0hP^AFXy2R;n4>`IWc7rCBP?4%F1v^Fo)&0FFB z0LVfERgu`qhv% zq+o>TZySak2*|8{8EhJY?gLle7Z(UcN-Vgd$X=Cef*T^`TPAt7YGfgMF2oCCD^E;t z`1GdZh@C>RFSa%3d&`(3S;D~Glr7baSq2Zf7#4x~vk4prk)Qi2qX@MCLL}CwnT=`x z0I!(qMZQcf47P=4E1PDPGKD*-g|#kF)4Ap{k$DDLkO1tmK>+Zeumiy~MSzz?#G*J+ z>SX;vfid7=)ms}eK@g1PbO37DA24Wi)Ob*5MDCz+5UrAlIm{s23xL#Q(6L#T03Iim z_a4{WdmnL%JSkAKxcsoXhhr%>!1oGden>t0Uc{m!<)p5FhLC4=!CiK%6xPt@Agy<3 zdtj@=vMsz4*fFdKS`FbOFuqU=63stL3kY9O4|CzfNp2QqJ=Ua(h&L@R7_@&TUEd%( z{mRx1Y_^w&*e^GijY&a)n!uKCRjB^}9Ss2?fJu>+K7J&t70**NHq@#sZ=v` z&@Ix33rmf%@GU}Mf{S1Tup{A1r;wEMs?l0K5q)EtFV(=^r@mc0>P)W#5T1O(96d3c zj?^Wg4P_F-*H^h$Q24*Gp-j5autBf|1_*=fn*jFI0k5!-g3fp<=2f-~V6!o^vk+(0 zvNX%MyrBWwuJMSamI|x{X-w4HYLjL5W5qXlS0+86ivtz;HRSK@_NQf6IASXvI zhy;mB`F^AR7al6RJjdg})w<=E$?YZ%>M}$?0^#&k&rUh*A<&~}=BeS# zyn5UrLWXi*3;{b8Dw{JY14cE77)XT;7XY=Q{^v_96iXN@Y0|wymqaX*nz%z~(B>A8 z4KX2hdx=_Edq>`7Sy|*Eb_7meUnMW-U?(e?5s5iAH9Ec_9F0DM6qi`}8NRubrlW5l!n07hkEXw07BfVBZghEs}J%|3=ZNbZ8v zaEVmtK^bYZ6WG=F62#mFdJqX`IoA@FRmp~2jM!KI0My6;2!g&U94-tp#M1OfgpAP% zDszAnp4VHx>zLsTLN$bNi%a3MkS4K=Y|xlhAKoKo!B}X%b6A^Z9uKPSJOu^7I;LSO zUIqS>25SW?9}%!ps2t17kVS}Yvp3{Qj?WA(7ykgyFk}YZ7QTs|A=`;^u&pBxsm>ho zc$Il!5K&rg1!jV(YFss9WK&(j2R=aK*(>L|_3;!1jiWH}Z+H*>|eiu$+qKKz*`= z3~&S~Dl3jmQw>X4c^ERGN#^rOWHUCp6@W`toI|j70a1JyShvGWEHA=e7FyZ-a3+v0 z`MP{Xo=tz&SPY^ebJK96t;Kj1!|aLBc*-KYykL1>m=({}UFr_$5%UU_pg}MRcxqwn zB7mW~nHNFOI*Yiq&-1~=!cUYN*vRELg$&TQqT>}XOB|t1c zj8dU?j1h=4b) zxQ2-w5YZUv!vYqXorzfSHY1}Kn1=n3rQ0#U^D8av(oBK|Tx{IwdErs4ePn(w(2h$f za?Gx#gvVPrp>P`^LSj{d6KsyVu^~!@5xzf=!G{+nB#~8(O2RQM>`ZkH(K=%&jGDC=g1D^|lrE1#bay`{DN7Wlo@8+FGBZh#o-mGo8n++%US@ zaRlMrEFsmJh76JUtE5&P!ZFty{Ep`FFnKmXc6?=w0;tJ1;tTLv&~%fV9uaf4qZEZGW{jnBX?+jfs(J8Z?8Gakv{{Yfj0(62?OWv7kKG0H?k_h%aDCik$ibUHX zrTW6hr1PITVlpymr_4)$-7Y%kQd8g=ls?>_QL2`>&D_5!@gAsH(mO(RW0{^x%q6r& z<1(!L5WC`VOohzQe31LdY)~a4Ps#EGQ5%Ssjz|cb1Fj~}AOton@eUHp7q2gvzd{|3 zK9a4W9|=aq3nDjn3+01y(P8&Bmr6NHSG8r#JK9uJjfy_WVowM8BgI7$vi7Jh@e{;r z1UGSDrfCkoI34`O@2!=K7=Z#K=Vk&brI2{u4&bme=Ga3Q$eTj(NBJy|8o-p_Ay>$8 z6`i_A;bY4(OIlCjUN0i*FE?t25(gQ1VQsp<Z40V)kQ=b@z)@?IS4wI{i%n*ju=h!r7Sz*TM85U9 zR3oPmy8_my(Hmkd99{$}i+|4Lh*;HP=f*TgAR@(FR~6yzQ4ZO2s`yxL32iU!F0 z9ui~F09O_Ubb%47#YIXE+N0d01PbT6fFhNp%to}n9E1uzraqX;1qYVmIo#-hbyP8V zp{l!KQd-BDuAnYCU?2b=9=uAt=O4h-6i}Q$(*<)@%Sv;v1W0p4@_uOwv8=@q1n8-r z7X+4UXU<~E3Pv!r!VJSzQJ8i5gRzBYNk!$0rK*g!U?KRZ35BdABO9vH9@~jF!L7wn zB8c6d7-r`q)G?HsNF`}B;o3l%PaKJ0X93I{tw4m#&Q^peVzD3y+6<6DII4y0o4>?~ z6ahkCuB2lm&L~sbZ|uN%N{^dHlkaE2Vb@{qz(Rv+{UePqxeSJMGC1KKmsUH ztOKkxsVMjfn~P$p>yiuz9G~$n!!$6%D!07ZLwnF5uWtlz?1&2`dvo53rfB(oueFY=I4&8>voH=FkD5 z*kbVQ;O~;7!Rz%9>x?9N1ldq6Da(`8d3`N73TabE{y@D#4 z@|MUb-OGFw9&Q?!8)J}8;t5n>4aFr#d#=e;NP{@CxKhw~ik2c_pn?Q4vY75LoAAQh z%E*#%M9n|1BM7t1wU(tm(XWP67vWj1uH(eOQfuNCPshUT}$tOT%%3j{quGOV9j7c*?|yP@p}qq}-}L3o#Z&Of-pcmEJ}!WxI8gH!q8n zJlI*NI#ue1n13=ABKTL5K?#E?m}9-r1+JJKhqQo=!;33{MjWBs5HPM9**G$u`j$)u zu#LKZ3{H>ENPJ?o1*x76R7EB4G$J|^c)+Zg8Hox2w!;v7r5Gz_Og)pPwO46^^8N{WuF!{YD4G8mR zpK&Z#hffS@+KyM3rM`O|s%;PwD0zc4J6%F%mDPuEJ_OD}`?ra7%Yxl9Qw2j1A^8-_CpmQfx(B=rq z_MuvZo@ZkjHLBm0j<_##c!N#ZFniGLAoqGB7r-SfeUUcXcg#-^$Xlu4k4_N?633sE zuY~O%UE0pBc8H=ksFo{krT9l+%6o4iwz`Nx!k33ID*||hfXa9yhCXl;9d`?KB~FES z5lmiQNo??~y-ZRZV)L17E3z~`rmB;6Pb@Gp$cvX3aH8Wp+k${ja|WQms{*2riNIDR z2zrg!5F`T7puVN>Hx-6-0s(3S0+w3j%DD8SlH?d)NNN5V22Lbw?a!`z6IdCW*T}oiWnW`x8f&6T@?LT0mbC|AmR!^RdFsY zy5UY*!1N|l4jx*8$ifsrMyxX7R`om(a8B$2O)qrR#KPc+tK)b#nk7hEx(Lh~^2aX> zRu}k)N^k;tMgWLmdIvWj1I@O%s5}6XI(@804;YQW2JN+25CjzqMDP<0I#SxHre8K& zp_tZ)F;HFhnB306>W~U1wGu4oy_?qzt zdt&(}SW|a*n2RVa_GY3k*D6E-Fc8fm?0Cv7B2kJ81|>y^aQxuZH4wXkZp2LC8GY2u zZEQD{wGzyN)h<&`A#^U)4)Vp1B%!#bRtgSm<+;hA+T+ZnSgJ&2Y!z6`>}D{Crl`Rv zu?X52%&(XWX~TPh31Ho{^>VTB#)!>CZQT;%45%qE^6rAAZL9jnE_9Ky*_B(0qKonL zlt4Ta#S|)&c;SvLQ@9I;cNI2Tch^-B6&lEeqM-64=E?RZ{=!+RL6-NdM_cm-N2-)2 zAw(7T0Akl);fKT+tm5?7kr{tLOQu1(iAF4*O`6?X#$(6dhl@UDysX%aFsZ)HR^Tyn ztwZv(UWXiLf$fS=p*TpHR9!e-1k@HgSR&QxCmE~-Q9OyL5GZ{F0%cjO%;X@#*EB-J zw^ws3bvR!b)LiJ)$ga|(1hTgis5I6ckTxAw)L+!(1g{*a&SJ{Vnzo_=GB!CeIp1m{ z(N!(fiYrqiEEaAYVQkDSx(GF_LYY@AFBZk?jSGUVC*g#QrA9PtBIsMG`%J(O7P2Ag zmBiZFN}#To7)V;#$d(;(E*NpW_DYcw{{XbF)#TDJunPbj1bUXA!1K=}BhQVB98EF! z$~NIq3V;A2i~&%96-{75g}W;Fz=MM=5-0*`d4|;P=cs3#N37G#W5IIBn03fQK5G@lAhoS zTzdvt8+((kY=9NMBgZ{T(br@bx=7lGgczy>Lao`KZg)aH{ z9vnllCubN8o`Kw;*K*pp0Jd(hM+Zb~*;v5?((jL(AZ#WBBhY6hJfRFSoy71J>R96pd;%!8%f?64cNV&^eZmt}w_p(vPT-lkU{boW=K6rMvsyRx z0AlvC<3(DNLJ$a(4*HG4y1{bmLnvZOP&mmU>p(T&5VLP$i^X>zgmO?r@~SK6b1Q9u z0O&Eql?#TCaihUj1W&dux?!&{itBu1(#3-p8^dz*fq+1bDJ3?A+VS;(P`rjn%WhKO zsy2_=mNZT=ZrJ#u<`ydP1qzG5QnEl`O1E3-9zqoHP@ZbMAPn#z+W=*uD1Z?`#}!G( z-JM1SN<<21sFranz_J+CYj3s%+B$%=-G`f*$?UOb77c)_fkKY&mMe@o0Au#z93Nx? zfR4+!6nvQ6XoWi_86lyg(=!rDiX&qjr!~FynlLgDS_h#DGz4+{s-9Nlh7b{=v_k3$ zvQmP@5kW|3tQR@BFJ5<#Fl??U8#2n9?}%sghtO$^+Qb_2K5h-Zacak55`};ct*Lfp zvYD4g6|Zq3OZFi`P{JLH0h^3QJa4IW5}u+K1K^7T2~CqV630G^)EMD~VTcw0^g)76 zh^!f3(nrP|AK55~c2^SPOdA&(jn5g}8W;ZZ8HFJ{YrVP9qH+zjZfQzQLQ4~2BND~0c;*%tTia>jo(tx2r9v!n55>_N!dV>)D;c9t*C|hN?a{CEP-y8RC=x4Sb2#GGm%T` zkTEIQ^8zL>&fk-UsOnrbmwt$9Iaro#>o0TyA`&*pD9e@@LZ}zYs-i+z?^(pw#38vx zJweKEt+O}xKTtV|jFII<)J}{asF?ibGX;#V89=X@CRbO>++WDJ^+L7sM+AYQrPVE8GdP*h7$5fB9XT*Z&J(v8cWF&JoySQsJ7+6#c27n5a3xJ*3q~VUqPKKHT7$}E7h=t&1?`v1cZN~6hM9P6uaSXDZ!1!xjn%Da?U`=q(I`!`B{q4L3`@-jHb8Jtz<##Qz_qP*NJZmXfzs#RcESJJ0RjOc~t zPyswI!_ca>!7iLY!I*VxO8_yW7y3c}092tTO;rQ^OgJDEh(QI|W z%Dx>!vqlHOBKGPP&P6jALaWVwXj;!7qyYUgVm3c-|X%SumQbd*SG(%BBDJ&SahuJgokJ2sa zDvI94?SQJf97`)Ct1WIpHmueXtj+ODxHcDFT(b|O%GYx5lsD(zo4I?bMhA;Wbcqj|*gAwVXuw(3vP)g(8K{LhZ zFen+TJ<3dvxs;=IXNW~JD^1I`mH_DzmY|Bqblx=0#InXjY-Q1GSF9L*0QxbrE!I`S zEU%&#HwJ0kF`nT7qljW9#TYN9V%v3<5Di^k^gz2He%CL-rCh{Iz{fz!=@FyUuUZ7NN^46m08@V49><1D5Y<2ZW7llo_j+EdG$@USnv<=a?L_0ci^c z1?oJ8DNx<&e-{c9Xf9D631MOK!qA!_xt*f+?VGTCw|Hady=j)v#ha!Ckfdx4IC2DN ze2M-UN*6n`pVYzv>}hxaEhbvsqF-?BG@}pZSPhdwU(CjURVVx*XvbiJWfTe(YpD2e z25|<+3`3zA-e~YR^yM9M1Ea&{c34Y?3anFkzRA4|5JrgWc?8EjTYDPE^LN2rvWn%S1w_tGS|4bKRqQf54Binr;cDq zeiJ*h(Kem_q;Emg-oH&1Em|9F(RCAPy3(t%S?{1_a{DkB9tc)`u7hxwNH(B{-fFQ7 zu=7&jMl?%|mAKMzGQj`}%z~^uqijSZt2k%-91nvRGOCW&gDRI~ZJHrf3KGb6pa6`o zMkuWavSTAIn zTnv|StSdn787*2w0*=Uyq1mWt;0={VQlcdm(CDa*uQeK}3|Rpfvgk~|DHv*vGx9RR zbScNtY+lb*Y}cE58|B(nn~~=TWPgJ<)#U6sa(p{JF^Bd`OHoQ!UYh@ zm8dQ1se-H^oy!iOwNVD8o~Al;2|b^v*AM1W22@oWd`oR)jD*a;(hENo)GrH|5l{3K<7MRC(2#_mb2Kg^CorcwjNPsnLqI{jL0o>jF>j*s)AdbT@Gu7D_3_G|1 z;zZhzgp5j2mPA?6s?@BgUD?ADu|-dW1f?Ej#YIa6-x9)0=s~&&^2El$lPF<^g*k{K zP6g;1F&tfqQN`4*ggnHaY(9m}tu-pZFahxkX7lE4y~XYLq_en)Px&U0{DkGORIX(e z&zmCaJ9cUYTZ?B7u`6K5e3GR&1Z_|tw1-BebdQ5i3YQ}3egH+*AVM~YvE*e5he-uN z4+Iaiu<8irN}3f@Giw3F(4VMvB^-qjE?)d279YZAd$^=K1?VN@#o=XK2hj_zi-ekD z`fg~oq*63P6-8;}j35~TuGXT04vJIiRM#&~L~&GlO~YXkm);i<%8p}fZ8IfmX6nrp zTtM)^gfu}aLM9AzS1zdl0V(EXiYpq^2-_r-MftQNQ^gej0M;jhrUJ|A7g?6q!l)8h z(k5XJL`@|qiOQCm31+<@2b07pm^w*gUxJdiNgp;1mU^=0^1g!O<+Vj{Snz;L$tv5C zYoH|}iJ@T(Bx6~x>RDEnz&t>zYePDi6Xvrja2(f9#5Xc&@g0>x%K-5EmE}kx{{RF8 zz4N45;&_T+y0zYA)K)eUrUQOVM;pNtLISNN&szelpt~A*CB<}Hkr`M| zC%A)E(aRoF3S7f5>twQMxnqVF7NcY!PQLNHZ8k&lT|{I%RaN$dMxX$pf!h;}Jph8GB-+qUEQiFP)+eh7hUUg#izTH) zMOvon*t^d{j}K@C7i)Rw#3-nC#!$p^2Hks!T-Ecba02>JnW1I38fAu-9_Fc6h$tQq zP2Ny68#rOkwa~&tv>hd*wk_DMFMNbE1%;ETX6549QY~&GCae{fVHXqTrF|gYfX)$b z&%l(pKbSTF_ON>*DCgx-&PEPkQ;4zQ8oQ#tU>m2QUl!X zFkql*B8BA#=3xt#5t~bv-`h7O#_o9t60T74mYd~~wI2|*mhQ;DLSu&x>|0fEUMHxm z6qPAu`B8k7@h)a5hjPLoUeM5c+m)G_K(?^L%W~R5szc#~H3gh?{g}G#Du%Z@GVi{k0Wg9+WhJ6ufV-O?o!0|9{ zVDfU0FBUS>a14}EDXooWpqZheHhNiz55?mJ;jCp!6;>2`%|TE|0Y~{3z$YHOG3_f{ z#|jm;Q_xpRurL_NC|u!<^Da%zl?1q7yM947ImLIn0);OA2K#IgcYLT#F1^}D4l&v;m?1Q=2`h)PoZ{Jb8 z?VOp>&q4;Q zL}AqLSCwjgKtu!)`Xqm5{jd7ed^(wKh#FlQSiLY%(l5Uc~N@m`aI;t@yhRTYy*u88+*=JaOckm^@wf_Jz`}#Wag|K-%$FUAyLvBUJ*T~4yc+>qFEWL8P zYSMYdvH1oN%*~59whQ%~n zMFY8$9ONWn0%08>2+L!F|LK>Z? z3CK~3Ib8lJ>3m0N;aE*h2XG~4-Gkr8{v7)C6?Zdmu`_GS;&ZXrclODoDjb|-dW+`T#?=;CO<~44F|A^S*qSi*_u=O}w~ENJ+$>u0 z@vI|sk5;b7$o;?RP!JbW7Z)~%7T6)QiS<$rf&f|y7((TyL;A*AsTbohbV3=sS8bbP z6wsX3+` zvkp~|=Yj4bi{E`E^s`+>hJha2&N# zuNJ!|dVnPA~34d{39hccc!~VW5e$EUAdx9U* z9Tm%M9G4=-+md5$F7&(J%sZ6iSdz-|?~B6Xl&_2xH|}&(0u6K>kV0eogmxL6#dKfC z@)+5aYxDSM2%ShD1i&IxNqm26jzs%&8n6qa12%QD1otS(YUSDGz$dDc6tqumrVxln zuR*!4J=}2AWt`dWdzUX;Hxp(UHwMW7m|0c~l!GO9_f`P7Y-o!+DNXBU1~X=RfNbhn zTDm0WIsBY1Lq}Wn9ZszLkT!rSVCoLmWzz_XXT3#edMG3@`Y?*tFIJrlC6-!2E3pg< z?0$eSZXNGt0$@Yit47=*jL{@|kDvqmcb8TQ*n|=A2FunZpI>y`fC~_g;wMuW)&Ui2 z)^6VQ@FIwUHoiBZR*Mm+zz{!M_1`J7>?5#Nfqp)c%jr#irsW7WDoyoCZ3AsY6&Psk z1~FA!CSmqfR<4L%B7-_nu(XHzltFDed+8C|aEa)ZS^F#(Qtl^{vy!8W!=*x~j;d!> zGg<~Qi?Z7JVOR^)heU-@V%UNq8w`Q1wFEgR3gv)4>1W(lLtRJ~Id^*CS<59yQp*g~Xtpg!{E&l*@ZXf>XuIvnwd9US% z{FFb05$N<7%8hHt2Vc_SP=PxTUr96Mvwn~5I;gZneC9Fj zX=7a=2^{4JeTt^>wej#gIC3`%KXs)(e;4^tN|iV*8EAJe>Xdddtp~&+#Wonm$%75# zQ-dkCB*7#5D%1lS&CQt^Fs@K^tgPWSn@0NY@Unj;HT-o)SAJqkSULcyaWp9gw79k5 zxI<`Y^@Pe}i7ja{fMEetHlu#U0aeeS{{UPd`ZYtr#1-)ZuDtvH$Y@9I^elfurBiti z7H}SxO>_sqgSzNNDn$CQ6yW+a$1pYl0IC$}28UH77X2rzrpFgcwsgQ0+Y+5hqZl62 zL%tEo1_m*|>ECFD6CnvlZbBsHC0BG^wM%FHkQWZ|QO9%xCP4*N8Ft%E#Ee+kZP`RX z{vAPZR+@US=k0GLwH-*F@IyfnS(w4hl1kZ`~n6IsSIxu@$0KAW26oI-HT(|g{* z4RW6OJA;}5@|jn2jpr!EM~&7ihpCWBxg5k~riZ|DS$0P-s=kw9trzM9E;ER#*exxl z)qD)1DVS(mUQeQPJxE+ZjMabs)k+l{cQDBKjtYF2Vk2<~zMkt??z||NTQ?nm%yOSJ zNWrnv#DvOF=TND<69k612}Vei*uXvEWsM)W)daABOyzt<$JS*yQxyv)NNmC+Hnf5O z7nondum1oSF3P1YBrxH_a3Kaai+g}4>NECR8fvx3-2>c>J zd~>-)owJ)9oJti7!-GZHKahdk_!!NTY7llZo6P&Vx_^+>QEb91jr!DbKKGgH#-0!#=J!)NTNScIeG)!qVHfmHKyarT7A=N zh}%`8KdH7~;Dv&oceHM4X@`R#@_EEy5-z|eLJ+9d@qS7lj-l~MG&pF}|olZPTp*w`@!SMdUEHodlSC*2+^h;w@uw#IT*f7&&n z&aG;3fX_{EqvT+y+N{954W5f2bPL8%lPK8AlNm+iAtF@mJ}jzkKA{jqwB-jyk2Go5 zq}R9CmqbSo#J-s195*OsZXTylTAe&KGgozpc-smG4Z=v~?cdm@RsEw>JTnw&*@zGT z5e)-eEGhOq(WDC#t`;;FMjE7vzna=!k#(l!^53zyEF29uE`T2>Xn z3*idjsUKw5axx0eliZ2dD>`LmIi+Jv=tp;RNe)wT6htdIWnJp-R&Yc#NR&QAFJ$QD z2Tqz9Ydal-Y5KP#-6tB|6&6?pWQF1i`+n#F5!97>kfpDlr{p!e9a6LW6q$EB`~>4t zuL8#p{4(dep@mARX>Rt+Ci;j+xCe0IazubVl%XS6Kl9-zs4G(r~5JbSjz|!r|Uzk>EfZxiybekUN z$9b-MgG9uWr%ipkv8O$9iX|P*o1+3JxDfbspEIqeQlae*0LTPNYAZ00%)mrORxl)~ zQ?II-Mh2x$q#`|#oi2jEcmKoyD-i$!0s;a80R#d90s{a5000650R#XA5fTOyAqNl? z6(TVpG9y72GeZB`00;pC0RaU7PNrFk(}%g*dg>C>QYei*a%bo%duKp^i#{ExXzV_n zOBr&m!&if|HZF>qIr$c36KV67eXNIT?FJP_fZ2saul2orM%ra@IX`HgN9Q=4`Tqb8 z+4DIQGXmR_0X6}JVTA{9iU8Z($cUs!p;s)cFVu^P)RJ!|=h9tkmanGwS`PYUxmxGx z#?fT21-B7zz%RsK@c#fKTx}~@LxhG;#z^b!{@g}H@ss!Y`|Ea%S?JjpX64iV$!KPwf_L6`q#Oi zN@yg6EG^m2#BCl8Lq5ze`i`1 zHJ)g$iivzAA!Jr;T6yeW8BWoZ!wxc7Tq9z@%KMNpfTYQOu8>3gL3SeMlJ#QfaJl<& zoMhtXIO1@r%oJ3JZF;;*6%h)r-z+RvWo~4(fDL7Oqx(I-i+M~E*4J;h$B;zo5d{ALI^P|2YV^bS`-)>w1;t}lBRwvGL9R=>VBmPqj$mUV zBOqfFWon&y)Qw%9gHM>8=RPMR?GrFv;~=9Ril+bx7;@{wI@A%C*O@2lTtB5pbf%q3 zdt{|`cb1y{x)7gU$khn&w*FU*w!aW->xKmoa4;|cMJmTMLQ`-^;BpU%*goZ#C5fqG z<$p`R!dV&Z$Z1T`y-2_&nZqKyFr8K~PP|VjmZ{ktkvYIv7D9^&MKJV{Wp!ABQcv;8VmVIQ>DR9JI@QSbqmS?y=RSDng4dX+ z>TF3yTZ)h~xYr(j%U#wtR2Eh)6~o!>P>P;Qxv{akKq8%5{-#NgtXFUKyM2_a6%htY zUV5-#MkKy$QA5RAV($1zgS|{YEZK`&N+4Ad1v4Cdqxvb}MkARi=PCI&tZ4a-If`3~ zkC$3t43*Q7a;k;zIM;;iHWqB13gs-hQuWxaw3REnN~*fsr}X~-dk@vfk{Fu;Q6Um6 zTt*x&F}9Yhx43g+f>w&xu8IIoWa@Du&>;&!6CY-OpvF)8V&{ooq{tpF5#$#NYHA-* zQqAHbD$@MuUy6du^pRgHw&JcSkLKMqS&I8@{=X^t>P*++x<_#eXFQ}Ts8_j%>Mw(!o86!_T{9o#JqTj{{TrU zpBt!2PkAYC%y2=KPG&o^mqSV{>yu;?M$LG!e!|+D-t$`EBjY|Wc;qLL3FJeQSWHeP zsTf;Hsh|A)y}v3coQ6*cmk_}pE^`MGgE`Y^(Jn1bb>jSQR@wgm!szp{)M{!@(?KIy z0%I}ln2Bct2aESiUZ6GtmYxt|Qz4Oq{nbf!l}NA(J%`vyEdgf0(+kgzF(D2>!y;=b zlRXb3*^&h%;ySW~Q`1C)$X771fN7*9l&RYkXxChPlStid#6x6Aodxc01hNEyl2rtV ztSSMhB3VRpHR%HvSc)>jxQj^X7L)$~9Dk{<3T1Q0u5uSRyK*lRDZ~*@a8ev~A0E`d zX>aw^>(svM&YAJcXEUJk87T3c*|Nrib6YhVcS(6w1=-T92xQ`U^u&;IKtf#VD^Ghf z&5lcf_=y>oRp*~ck`A#>K%e83=VF zE-3`tt9n~cQDw$-YS+ip)jf8tDK%_IQjrOmjxu5g7})1pxLTrlnTX#f?6F0S1%3f*e? zJ?4~F&nVUiUi0&qca&OV+Vru!ByxQ@)m^o<0oN=XCY)t@(#c&q$CuFxD&i(H>nd&q zkhB*8XZz-Q#AIa72f7OCoKTs$4PA*LXu;vCdu=6gFhaHPu}e zU)Y#2B5MwH)XDDF%7AwagSat~AI1W5D;sLj9=1_TNyvD|?F0*=#it2k}GoBBOHd|{1y6II|;?rY> zDH5AB(-T$F1g-7MDA(w=1#3-npK(lNaTz?!{lEXj06Gx>0s;X80t5vD0|o{I00001 z0ss*M5+N}JK@cKQaT79Ofsr7gLSnH6BQsKR!4wrFf}+tdW0L>c00;pC0R}$++Y;Bg zilYJ&2BWB&^oJqndQ0i`(rRRt}t} zAbd6d0AU!nLx|sXwKM*MI7YwlvYJ0*AO0yaBP#(#dA~z6Xg3KUt;$^h-z54>hTy~UlT;?~N*FRVewy`VXwI95_*=+WQHagTf0%gJ0<4mI(Y`F#4Ca1)~oZzv1 zSQB4O{jZJj@xD5TD|Og3k4Q-BQRg`R>`Y?0(BA^#yam(z$)$~ZNBI3dKz$n4Z~*j! z6Hq5wH|X2+bK-sB-@&}sQ0ij^9vY1KziE1m15tpId8kS?7}{LpZADmV1Q@|h>qg$I zjp{w*(z*zsCS@dwX+_H`FhB>a$AJp4Gyv}gvMh37X2`;i%X>l&Q@Q8M{^B@sbfo!! zBVhxlN7BAC&YQ;H_*5N2#c&E4N?+yC+k_odogl;>EpF4ij zc5AcVzogum$uLn#gq3C zze$xJ=%;b+3?Z?dqS!UPc=6-()PJl#A2a@AE}f>=IXCYv*!|-Jb}DYIUgjvXxZ86A zmw)j0A){h)*;Ii+n4RO}T!TV)9n8j=a+87BU2?IptFa{syXW2np;dpF;)D~w3nO4>AU>OVZvlnCe1joV&Vn(116F;<<)MKx+c=qva z`_6n6AWe#29yHOc zkV`FH`dnlTQw9OZG%^?t#PiHzG?IW2A_BwWW6JASRymspELQV!01z=EyBTV3z_EAX zbt-W?%vf~g2nAJf5{P6S;}ichJaX3T~r{<{EYnuoZX z0r-SkgIkI7C@|(@{oXy3ZcnW0bKjkmrUm27c`;We;`K8TdW@h~>?P?0_asigrMpbn zL*x1~O@&|e6Nx|=bqgYFA)sRp^So9(%x8T}N#O7&QPkwUOnjs0I1%$OEbL1`lBl7k z9)Y+20N|`;sGHu!AEeAPD!RLZ37~#ZB9{(5JcRx#Y50x5@-Y6QQ!zhHB*vwGr7cBf zP%)0t+42l{6XrAGXe*68oi-!e`HcSd!vVP@citlv2JXzUWqXOxe`une81jPRxkIxF z@l+p#;1yst`WOiua<(_IEl=3;JPi}Mv$WjJXc#|nJkCAh;>N^_-)orkIR?n!gIr8~ zE-#Z8&Hkvyje-oyowD%=J^~+TJVN}(u(?l=A?~jS!OXY(j1TmH9NC`xf@hY;)RPN! z8S#(xFj4!>7&Ub{4+@(sO#OTOwsBz_B1Y;m0$ARkppFn$Igbs8Wfa z`jR_~ujxF=mA&lEx>ffoCQP3XNany1va5{+f{&mZpSg?_Ftwm+s^G>50=EO2^p42k zT%RyLw*qTjClv+W>~At-L15FL<+z!!UOuA>lZnCngY+?Q^(QVd*~YOeHZ@aRgFas=9NZ?iZY+Giqc6bgWnqwOnTeP+F_L9NM%$C9`D2?vAwO+KX57sHR- zOZwa@{{Z1XBhvfK7}fQa)NZR|+w>{21@I>#8#WI!<{yZDS@U=FnY!$U{2)pin$`Cv z$=V%R_o_Ap*V>}E&8TXoy0RD@!aI1y`XzFd;3dcRBRI!#}{xgH$wP^ z`ybkKIh={iC>2#}$^bAMtAJ`S`Ogxy7%}3#0Nc6YL`(ty0J;K-nio?~N%4j=%h^@? zP5RtS{)L$S@PUZ12bIVx`ppf90!8_<39I2)9ngaYE~WB{t(vxs_RLV~OC7i(5HdII z2bl8%5^Qk+3}?<@HpXN>%ztkSgiSiC;uAzEq6}o#NYh|Ygake_E2Ent%A5BQU#hZi<-aP-&8(DNIw;>Gdl8vBkTN#IRf->Y zzXzxw1>_nAZ4|4=`uKGRVt5rI{kj45!+Yo z2mZ|O7OVhj3NSGPVRHNcp#?x|yejN;y8i%3%xsnHKAx2ZP^TaU6^I^^>6`5VLdbiADe$Y2-uIUHUj2cL2T!Px-2?$TI-(D!2H{*i zCM4UM)doDO)%l84`K3p5mROcc3K^K1l9s@ySe zo;^%Q6+}_@5tfC6Uzk5i3w<^=-lnh`#@t2J%oKl^nL%`x2k$bKZT=AoFO#Bd8sACzk? zeBTgx39kA~B!l>$`<3ep&;*eYS4p#GyfK2LuqORCoX(wr-Gf{!blOcuu&0B>%BHLU zLH04I4bUIGKtD-OIX4+eYPt~umS@!5av{dr%LOAz`oZL4eJ)VTexMi+Jok=Q8KaGq zG2+OceyvyNwq~=|??7yxg1uo2)_zop@@pUFLvu!#PjeJ8^H%rCFy9@ZsbO!}Pdb{h zL4+VF-;JZ`J1r>tbKo}~7__S~)NFGUFf|=dILV7>q%tr+LL$`)u@C9^xcDH0Qm6xd zph|roku-&|cgU4O{VZJF06w6D7R`g|ct3bCY5p3oq+Kpl0bE4{-FwQ4hQX;}Prqou z9p?D}zBd!gMgS0yD!-&rq@9F!Bz#)(DckQcLFT~0y@&PlGH&-l2Rty5t zeNz=`^bSWZb2Uc^s+6V#g~LaLMboYx1Dm`!m~B}eK`Eb+CV)*M0SGbUTsEi@RF4hn zrB7gA^51m`8L6&f_@DeioMFPUowOlSSE-o>awJ3aJ$CLDJZ|~~at(w$~WMw-$3jB+g z%rNp@RzwT1inEn9UNzZnclY=ByvaV#ebj+uC4F6)sd--?|ANuJorcx+SKCJvp`17< zS28|t+BEn}MJ4u^8>2tWErm@F7z3+EFU3cl=P&lI=^qmkj*rIzLsN~y<(2W9Jao+r zQP0)DV6a*~UZKskNhAN}k<`qyNrOy97nXzdM`PQKBjZ$|z%Vn+0oTlGSs=E{YNQIQ zvZCGO*xM;aEWYo~f!SR$mi<>xTvOg%OIA*@HYUb}g#vmoaOx-oo4LtSr`tVpS?v@Z zCePkER8BnkbIve!poRKf#3QG3KPdTSzzbsa5*MI|ZS7*jD(4hg%~a;Ak(-)IO&iEq zDpF99KQ!)U@!K+Fc4PYGoJgmo*S9qe?zH}%?XOmt6qqe2m`MgcY^cyzjT)Rzn6p}} z`-3ip>5D(R^kVJr&UeN3WphU#N2MqW_6Nvkb#(+A!T5*x z0Dj4JPbF)UPX90}U0O12y7BiM{S4{_fsFwCZPlD6X-J;z*J`<` zw0McGn``%63Td+*8`iFi_v}+;Q$hJpyRIceGEbZJTkgue5!dQq5QfPDvYHc)$l%Fn z#J2m)B1&uWhay;g{d(T*#1I za1!Lgu4S5o@`$Zwir4Y-&6(a_+X}sc_o`-}{3grHtGik_7I0rT>-cz5^rFZOZ`awBluYuEEOkv(t)awZ*@7vmQSZwy6r!4DbUq!F2@IdZ zhwDVKd1{Bh2B+pWEG=}Ne)x7G^{0nn9hsc%)mrpa%B$t_T_Fu|MC#l?4yv|HpVU|# z2R{p0+Kwn+yjrE^Wf9G7LwR%*IY&j*=vUUM zGP#oT;mfCI9Qh*?S)jI5?yl=LV|7dKZ5H4D9<0@Mw0=A9hGpAC8lvl4lpG^bUuqDK zat{{agCLP=`aVglzk&iVq|h@ESM&(QbH1nPnV54B)SM2;0);Gd=i| zkbU_`p~s)U)0u>3?#KX^7R6olbG-n{p4x(H_#^6O-1vMTUm&=scuKePOdQwCBCs<5 zm4N%7&azTLXMe}EX&u=Lq#Xooj$dEIWmTS|jOL8dVLqP%W&GY|BF5zCkEPy$dDs{K z;8$i+t+ri~}4CMPh zPXD6lP(a3d@%dvY2NR8q*yV(aAwf<2Fii`*7~BYTa2OO>;4^7)zU4D%w3$7Y9;yrM z_y&b$7fv2&Hl6TJI@npchzUr3<=L*)uZzTi{kRkFPtDD3sSmCdbzg3AnWz=zH441_ z3(#@je<}RPlR)|tOToi7lo*|{JhEPpec%;Yo+0j?+Kd1fo!AT zdaIkh@bSc974ouc&1MG&yPit@Ejko_=2Qkd65+=)96OOH+K!fd-E!;mfm(q^>o1KV z2Mm*rP+?&nkNIGVL1jBFtIFaFenVq(o4h%$%5S$|>ePmfTN5;SDB~7~f$YxHhQ9#W z--4qrZG~}*sps9_Lpg+@;C}xQfhrvYs=lhYC{NMBZb9VBdz;yl_27i(!P%W>jgA}l zPu}ATLxlqFQyuIy#%1f(`~8dgSK2#$6z>lE(uIX>Esg|QU1m?DC-NzHrM?6ww;p^$ z2YUxaLb^daja@4~nvloegcT|(>ho6=9h3)!>VxwQid`l;9yeN_1+Lw9Pt(`+J5W#% zD%)xFTT{rQXov}trmmWKf_j#r?BINKU~w0p$QN}N|Hp*a=E1{VZ*Ff|?l5?SlPXON zggrHV6x5x)81&ka-Ojs8L6p~|=??|nA7ZcK7vDF2J7R0&J20~dvp^keu_;Yb zNC&-Sh;zZIq=YN0kDG5-8XYELqz7W8PJNPF4>`1OwXDaJ747UCK>MmaEasz^Aq9^A zg1wvVI@(`W8trd*rTdC*#crfJ7I}v!t<)$S>R?*o*Qn{bI|9hm+8O)M4y+ zsnKR^)4sl8QSA1iacxq=YF~}4AJ}iV3rvS9>31_GmdC~pkFOk|C3mxl7Duu5L}0Pk z!DD&JM8UX%^c*nNNFoN8UOwKPw-|F8ix|{()n*`O*{8B|GH`9b^Q_~Cp?;{cpcvGR zDwe9CClL@WAw!3+8gGnk=dj;-!=D+m6u5T#al&iU5&8SQm9Q9?%1<{pmpTFr04aY# zmn1Y8fPV$a|5hXb3`{HlHV*E8)gzc7bfI$6>8{NChfa100>KD>E1TBo3hzJny1_jH z;FyO};mD=ELb>#x2Zd-`dU?Ov!%!U+#jhEWPS9UFBiQK(X1JB2FQAX|)s5~|9+`IO zu-*+qZJkbEc?M!zH}qk=Cs=u>@%ps|B3M8+*Xy@_znkbPrnXYex5pH8(zbtGx}+rk z0$x=oolCee%4pVn1OA-3Vr=pIRPPu)t#zhz(g@#Q7po7k6?hicV&u2xji`3~Hw zm{$$4rl)+{VcY$Fy4EQb>FB048PLI}GMZMQzGs6#aZfS|OTwmhO6$-W>zRM}^ zR|7-~?D1gg6Cd=6SDl9=l5aZd4Q4aS@Fv(;J{ViNr(rp0znJPQU`0}mIyDSgMZWR= z`ZmRN>YxRx1x>7ck_YlNZ(L@YTwOUm>evz+gsPRQxY6?WylD&%3@*&BMyL%6tCdeB zB?H`m#ZOVo^V5bH98~4|aipRBQD#`s>+2ua#*L(jsT`~Y$$fMHo%Z7Yr&9lE^?#I# z^-rm}YOF|BEL-;v0HGu#7nk{q;wRM~4nFh>0p_aV9bIF?SCVT(T7{ykR#D8E(2C%c zcV91q3R2CDiP~#0kYIcV2gi;h^1F9}*QdL*zWNw?V%FU3cBhL65?z5KnXQh3;y#*5 zU^O;9XQ6{eD z9QLNWU*`R6@+-9>{XB(83|cE&e7(KC1xz}45r40t3?l^#XudFH=&nETcf!hc#hbQXEw zc4Z}PYzlw{oj-Iq%kCsmV+}{X@R_6GI9OkSL+(>BT;Rt>U*Uaw_dBF0jF!XVAf(15J}}|F4hJ zFy&>$6V;2>sm1ZzZd24P_A#; zTTo7qg-xa~e5&gOQ>0aSN&$<-Ot1{@QR_%ea2d8`>LU|IE8>ZF@X>&XVS`klm)D>1u*CVkzzO1UGgX+ljx~`cWAngg%GG z*SbjWYY<+Q_!J2C8o?$%SBcQ5 z4i%>g5H{hSmVRX0xX~>B9%+z2>qEx7N$%+*f4V-PZ&&}q({-2QO;^ybs~wA=?{)T5 zG(1yLK@Ip-7rn$u0D45+xj0BxWF|=#(1bLJg82yj$hSTQu7QsF)I>6L>ZC@mb=u~5zI{pSk|$>wfxji6 zX7EN#$W!}N9AqONVib1eo+%U%ZPIlN**7|QexH9eSYNeRVw7;Co^O(|QdmgmzDUQI z7N;!@^S}D`rI;<~7tgm51Hvd(`)N3E8XI&zs&ftbV-acGPyCcNwZ)ZZ%~zeFMJ}tw z?_|AmfHo%kgAcEZ(L%$H;m@(Pxe?n#Q-6G&$`m$LZbUV_M3qwxUhX=AV?-rqfDQi% zl0zFIrcU+H)&9c6Xvy%-bJWdSErC>WcuN+nT|{C9an@ugTJU@HOhRbbQ!`$a$ZhV< ze;O{b8{Up)4rs?MXCRLPdMF8`E@72Sh4Oy3Zxo|l4IHD?7-T?_Nw?V#Qj^V5P`fny zD}7-sUnqDH(M`Q;X4Aq}tAxWiwQx(-u^ow~jYSET38_!Rf7A0BI2)Z&ax8}pl2ruB z0l<#ryA<>M?))eh{#TFp(=O^rGDR>6eS+?Jj!eieS_#A=n+DC+e+G6Oce~ zn~*`?eahsP!zJfN)Mpte69WBavTcA6kT>K&ejtI&V?(*(bY?rMcf!W+jG zKBbtMBioRv*+sIuX_mQt&8nHjg6=@AXGZ{KQ261N{+k(YIUH4PIXHf%JyQe^uDQ4% z^07%o2?Y><34AL{!MjbDk(ksnLEvhqr&$MI2^XwbCM!wm@eJrrxoRVHBpI&*e>4fm=pqdkklEh@#EXo5N}tFPmV@-eh|B%w)zo*r zA>qJAD|`xGqei971s*Q-XJUZnmhJ1dbp}%Pxapl+BeP(;-A|_ZhF=`67J_PyQjL~c zB$1x_>H>#>0oO_ISAQ{OBsqmY8SSaX1aj)`#9LwlA>kMRuvG#D2B@Up?vUd&DCM`! z{!W$vU-K7piz)RwrFYE9(83x7(gG>yZ61;b<>oFO7Yb80obh0CDCBGZJm)2>=` z2>^s7U@PG_%10G=38G#pZ?Zhhw+z~BM@hMZ z`7}kss>R{8%G)dNn336cxM`7(HB%Rm?C`ogo(gP`0xk`tHr_mzITf282#LqmX|x$2 zAmdaUdU;#x?{Y90XBi8p)BFBU^x`sP68V96GW2&8KABDZ_r>-~izSgl z7d8LH0QnM^Ofr9@@+eYFxu~7_4{6TMVupOH$)&yO^bRJFDU48+x!AS@Eo5f2&9lm; z%HzaWk#QO)bgQ5gNWrymIsir4s04t4XhxgJ@ql$GK5<><%~4g{h-4%Q!!s8&s7&WxACf#tj0nLfRJ zSF1B@!e&DLI>rvVEA+90CaYefK0M0kne|=($XgsFM;6W|0;a}SOaRrvk*bhtcued! z@Yjc@6!UI%roTW3={>tbEhrZ~{JGINLMmq~w8^7Ql?PjuS&55+%P0z#nLrkcv|*qg zR%9GGm~N)ek%{0}pbreKjpeMhNT`j$=A}=L1j%6-HQJD&`H`=yLmI;}(b+(6@VQR% zmj|M=CSZWiv6!fIA#SCQT3-?`eJq+TY>-j{h|36xk5+rNQ8`FXFR5$bWrMX;T-T54 zHffAaJ93}SK|8@8yzfx_jc3oBDR=)p!>wqPY78So^MQoDL4@PKL7dahx!+@*J9Itn z5$prag zzP64O5x;h|c}byv@@OfXI1Gnb=^yt0%4cY@u*si`q$|_s)}InC=jTluz?%7mK57{K zq(?^>?omWJ9L;T01~V6&8O?Jzk}=6koV@q=M`y%c%&#45oCQ9&T#NC-2q4r#$fh%abw)lFBJFcDZ z4he(Yx$fR!$)Iaf*?+YuCiZ^-3lCkL{;N&F*d$CsAVE1@90;>DDOA>zj72^So?0@E zYxA;~RXAKhN6$7Qt+es;f7h*8GJx6d*mMyii{G2OvHC19U4QJ1RYHCRx214Kw9+$0 z_h9i83Vyav>R*idMJb~!nMu2+{G#ELHv^L8^x5MQNe#(BP3y}SyY!MD^sem)2G4p2 z$L-}h6NhZS-yt-rt8m&=SF8uPGmjdo^y4FGacMU{4bJ#z@Dn2Fjg$3B`x#mu*ubhQ z*Q1uF0u%#P-vjCuZW0p_3E-*A7}7p%uGX|cXFftYzW%J}^D)oa@9$e1E<0W34(i8G z$$}?StA9H6O))2+Ah8QwdYoIIqy(=Y5T>plPqjaW3X$vw!bBD(yB!YMG$fW=9yxpu zD*P32{#4Ri5?k^S;F(#R6J*=Z^|@b6${qzer)7Pc=^QW5$9UliBKu zYv+D}0CdAU?9%DzP7qC2Y-(H=OD#9 zgTH`QxtfnzTb0nMvGm?|ES4`Ib2(a{1o-%$IbU0K!Zha`ELRMW#@Gmzb?_R1ajYh zlj~<1GeA8TF!Td_(YC9R4M<4w6SSZj(+(=3T+dfiz;=O{O2Vp*%s-Wsn{0yj%Qnn zYZdmInUYUi{%1mV({SBV*G!BeLY0Iqr`LIgHGcsod|TJfK8~Qx=ucZC6j@219)&iy zt!CF})Te9(U!^<3LQB3mxbL_TZ|QqlR`##@3}@z?`LmaJ z$*AVam#cp)?AiA#8r1c}gA{$Ct(GbzgNUBM-tTy+D$et#nlLm*P)rzTJk2=BnMeHxidmiqE zfoUa5AkkgrsN}x;ZYz;r;Dq&ud^x@+(QE5Jt1j+vCZk)r3-nBB6RZO=YoVJ>?4hts z<4in#y+hB=KfIN&Egh`QmmyvxO&|m;2lfH7CqeDP*?MX{HAqoRT=P`!)3ahiSAuv{$T%TY0X6o_B7_eq$s$0ke_g3xQQ(8AG z!4;#pcw{KbpfDC5HssMr$5YbYMp(Htq>%gSWP{BCi2KbJ@8g=RfQ+GYlq-|f;z?De zhl{6?WHOogT=9|f1BB1FPwz?cS2%~73Z>FU?!gUYv}zvnP<|~pp*pN-7Eau|vM4=e zPsygOV|(r40D1l9^`Jg&+2a+{sJGqu7Bv1}NF?)ui8=Zjm7`|4a)NM}HfA`A*=Gxkn3PrqtbFsQH3pnBI_!QfHS(@U#)0 zWRjelYo@2fqS0?@+1zi)6W4E0mC;JAnV^lyni@U23oti|77|>FA5w^lHmJF{HY`LGd$<@Krbg|PxL zOIFaLu<_gde1FqEPtj`MzBvfO@-IMPO|j-4c#ir_{&37Ctnt~TS~?T64}r?xsa6WIupO#K>}D@sm-X2FL) zD$}nmg&0@fDfw6&hW`c3eZeoS)dn6BX}&Bliflg z9W7JR-IzOTKDdqfo`s$n;}9ZeP!S;Oc!--FAJ09%@E5Rna>AusnH!6+=)_j6nfokc zzxj4i_ijf@!9~OQz_F#3KCvwlq`YnPs1qgl^B87O8yDbe1x?^Y2LYiX%J3dY`E8X} z*2~{`y5>|8sH8ptwVysu8Wk7HeSIkGg?rJhx!o&!&3ne^YD3vfEQ z@>fpjc3PIyWVlTu?hltVnNX)j*#-*w7%aXqNtJZ9=EaFh4oen8yvTQd0eRh*1rH^6 z?0kxCiMypv?k@vjM)nS_81u;&jT+ntIM?e8iPn!dTOM+lv!E7YSfqe#4Q^p#)vG9j z{tY1ceWF0reSaA|)6Lv_GGmoZJedCeKJr2`5M|Ca(}l7k3&fCQdpBl0KfI2>d4N|i z5=HktHZnH~yP}X7$HmWl+7GEk9A(_qNpEgO3`mnoO=nRalsT64`ZMBz&z zxh;iNe3(f3Hs~dQDi}RfViBYEiK}Y$(@o+{Y1Ep%wBZ~(2YZ2p@&c%k#8+Tk`olt{ zgq$EfO87r2JV=Vw&%6dRdw5&LG5oi@jiUScdK)o!#{tsuK9;|D>o(b`RXRu<9Y5np}B(Y-YOBF3N}PUf5?qQ?5ix%{GLg=h61Po|%$csjxQhS~4b-cy?i z8)V!AiHjff%i`kcWUT>uEl2oJWEk%Ehp-kgbaWcXG!&7%eXaR$tkIK4-2A;%q#5Gs z|5I@MP|Nf?&JIc!9_{V<9?Mw^$)Z3fPrJ^IQGTAsm9t%)x~w^pv`s!AP6l(l{FCCh z|3*Ve@)$R;`bb{A9@W4Xrny~{cz7r=vV`Q!$ z@dbN_hczDt-41cTI?#>1%WH4SUu4HWq!|^~k3vX~cT&L=**PACRmPeuOxYPIEbSLP zE1TW&5Bc#XZ&pPBE;FYnOnelLqKyc z@)It`3|H41Qv4jYU!fj2aY-4P{*G~%c($)G>FCW;yp*o3S2tKHCvr>HSiaB)p9g6?W*Bv@o_a`q*VG&h9mhBVw}8ufxMq)NM`nNML%(?Mh?Qu zpA$|vtlYCZ+WrC78677qetI=WAfSeTJBkBXL@ukL9hQ8eqLC!P1+YL5p6BS|SS69e zr}x9s@=UdwP94UJyS9r)0&pQ(w6u+1+%zF@6+%Ky0(o$T+YYp1(@3MB)4Gm{8UW=XH%Czg#0gaA;IxF`*k>*8bH8R4t z`EnN~tCp%{X5&K<(}79J+qe~z6~9h|1*OP(*v7HK4aA~_D3m0}(=m-%|Dk%(T${~r>qKVu`CG$@lo{D6lR8^7t1Q>};DedeO9IHJ@{BRg zW;+|;ezIscz5mLun}|5jY?Uxo$@B8e(U%O1q3t?=V>On_PoFy_a9D#r`~~<&m0ecF zcL3|k!CVO3KCYZZvG<&bej6CPhrwU%NT(#nbXA!V-h67WjSbR`=VJX8@m^yR(}-M? zTKG;Gy~L&iuHd+#E>oQiDwt8XYzWdW^D|6Nicn8nnrkEOaC;M81-{s<4T5vl-e5E{IgGKf3iDb>QJbN<@K5=_}j9X}?xY)d#fwbwK z=$>VAx6zWDJOXz?$dk&asslVyzAK2KdV<$k1~T$pFdD2xn0X#7&uvinM1o_5PS@nlOo!U&fAK+FY9zE{Q zUq9!xFB=Tg&O&MZucN8!dGBdwtEe?&BN!v!6Cf%8FG60M%*j{a`%r3*KRM*02MW39 z8PcmjGwtSWX6ocoNOg;;6eOKeoAZPQE_7aIZ*Hn+3L1?KQjW>WM1-@%A5*IW2FSvb z3&vu3I)pN-<~ij+Yhw%?$pzD6blC${pAoV|;tDLpZ@tLp!k^?4=V44%#+Hw&oRJjb z&V2hcfFK;vI*)DyQK=BUjxnwicGdJ_z)Fv=+|CIJvpHUN^M#!8Kbj9`lb|KApfT!* zY+y#1yW{2hxqn%37U(~x*y|#tgteb05>>|7x}s?8`32;Wp*! z)**pH2N?bboycD+{y@p=%54GFB$tYqlRoV_gEd8R>ZT(uGTUs63+kL4<*eM-u^x1b za3CvqPHFIK)Ki&4Rlvqh$?v;S#k;Y>w9_B<*x+mQ-SgnX&V+Dg!KO14c+jR2kL~n zKAC`!m%#|bG@&2dW+JBc2d6)5gX^`842L6Q6I4+?zc%=b;1;h{BL`S2U6vAr_C4?L zmhBIke%K$}NPls#zMe`26X@43lHS++(F6}$U+9mGe|`wIXtb}i=(9bnWi!OdG7fC| z5zusdY;`>q*_^dMXR|!NH;|9LHR?`v@ypB^#fusd+0DiCE6s@cP6brPl;eZd09yd-2CH9z{H zJ-I41wjLfad&PWu^Si)xEz3{y*`MhMI%7#4-LFO^`l`rnZ(hrjH!x{62Db7s-o~cE zfm(4(G(!|QgTlPL1<+Lsj(e7`t^0d_0n}{qGJB2#2jhiW9Gq?4?}cC0x z`g*UlG(Xs6M`xZ})ajA(HjVLWz<1vxuir%SH8v(C<+7Z{ARM$_>FzA&mVHei**z%h zNj+0(NV6Ce%ZfJ2{YQ6PcJEC0HYnj~?ObL_#kZg9?!Il!>=t!sB;qerNPMGroK!lpV*NZ;+pICXMVj6dFE9!_wxr5Y4UbSd_VV>nPA%;W9cy8NH3 zhw5R$JgbUdjRX3BG7n323MIZ76goJ6$Xiu>8^>**GYsXGUsa%?;dF9xvNec&Kpw^^ zWLwaIMg9fU>s3At>=9|b9#{czGEHq$a z{a=0x!6p%65|ks=wZAYn=YANN} z_lY?ij}16gT|T6mpmdeU{vBqFjlW;xWLHO8rtnTALH!D+=Lgbqmb_}MAf^11~)Gl^|xjA^-wjiX$mogyZs@jM7!#ZTu!ELHDI4_~wTbUKEd z$AsCwNu5P*+8CgyJ-&37C+cJfEsp$oCGK9VK=K#BL!sFH0goEGQgNo9ghxcCDi zAWu;}G`pJ!RNxCxyzf%kPo;xKXkR*x?vPR#f1LG|eE<9;;Um(q=u)xHDA*(ac{2tB7z-l}< z7m2AS9X{C9q%_Wdmg+h(l8ITDc|FG@N&3)^V`G}kht!wr$x~0ab{k(UmJU*?g@x}Z z^~s!}=15kyno5VKx8gy~^Nhy6%QAaBEJ=F8Bg*vMyooX5Y=zCi4mQQF$dT=A-`oP^ zNzgz;rtwn7YxT;3pmUu_Uv$Zo0-m);%K`({l^&pNjJGlz8eN7_&e5 z*G|W6G|6Z^yZWuiCrzOHZ{nLsCIYAN{P-ZI%>Lii@#TqcPJ*nnR3qoIv6)C_8Kxo? z)x#^Q(-RVFlO>aR3&>_@cBu83MA$wvGZYn-G6BtAexARKHYD*0YTWg-gAS@A6ctt( zN}0fvWFtzIhn+R^aXByV2Q=hucVlDa_wq#RH#DLR61`duZ+@2Y%2Tpx5er;=?rhVF qb?6fCv@?oL$WmOBlIj=YQ`Sy$2ZJK{$yh{1yWeyo%b_WMm;Vn~tCw8> literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel/assets/images/violin.jpeg b/limestone/pattern-single-panel/assets/images/violin.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0f2c9b1d66461385d591fddc488d5b3490e0d96c GIT binary patch literal 14128 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 literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel/package.json b/limestone/pattern-single-panel/package.json new file mode 100644 index 000000000..6082907e4 --- /dev/null +++ b/limestone/pattern-single-panel/package.json @@ -0,0 +1,45 @@ +{ + "name": "pattern-single-panel", + "version": "1.0.0", + "description": "An Enact application demonstrating SinglePanel.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Single Panel Pattern", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "^5.0.0-alpha.4", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-single-panel/resources/ilibmanifest.json b/limestone/pattern-single-panel/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-single-panel/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-single-panel/src/App/App.js b/limestone/pattern-single-panel/src/App/App.js new file mode 100644 index 000000000..26b93d5b4 --- /dev/null +++ b/limestone/pattern-single-panel/src/App/App.js @@ -0,0 +1,27 @@ +import kind from '@enact/core/kind'; +import {Panels} from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; + +import MainPanel from '../views/MainPanel'; + +import css from './App.module.less'; + +const AppBase = kind({ + name: 'App', + + styles: { + css, + className: 'app' + }, + + render: (props) => ( + + + + ) +}); + +const App = ThemeDecorator(AppBase); + +export default App; +export {App, AppBase}; diff --git a/limestone/pattern-single-panel/src/App/App.module.less b/limestone/pattern-single-panel/src/App/App.module.less new file mode 100644 index 000000000..23782defd --- /dev/null +++ b/limestone/pattern-single-panel/src/App/App.module.less @@ -0,0 +1,3 @@ +.app { + // styles can be put here +} diff --git a/limestone/pattern-single-panel/src/App/package.json b/limestone/pattern-single-panel/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-single-panel/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-single-panel/src/components/ProfilePhotoPicker.js b/limestone/pattern-single-panel/src/components/ProfilePhotoPicker.js new file mode 100644 index 000000000..6848cd8ec --- /dev/null +++ b/limestone/pattern-single-panel/src/components/ProfilePhotoPicker.js @@ -0,0 +1,81 @@ +import BodyText from '@enact/limestone/BodyText'; +import Image from '@enact/limestone/Image'; +import Picker from '@enact/limestone/Picker'; +import Slider from '@enact/limestone/Slider'; +import {Cell, Column} from '@enact/ui/Layout'; +import {useCallback, useState} from 'react'; + +import car from '../../assets/images/car.jpeg'; +import city from '../../assets/images/city.jpeg'; +import mural from '../../assets/images/mural.jpeg'; +import spaceShuttle from '../../assets/images/space-shuttle.jpg'; +import violin from '../../assets/images/violin.jpeg'; + +import css from './ProfilePhotoPicker.module.less'; + +const imageURLs = [ + car, + city, + mural, + spaceShuttle, + violin +]; + +const imageNames = ['Vintage Car', 'City', 'Mural', 'Space Shuttle', 'Violin']; + +const convertedImageUrl = (url) => { + return url.split(/(?=assets)/g).at(-1); +}; + +const imageComponents = imageURLs.map(url => { + return (); +}); + +const ProfilePhotoPicker = (props) => { + const [photoIndex, setPhotoIndex] = useState(0); + const [photoPosition, setPhotoPosition] = useState(-100); + const handlePickerChange = useCallback((ev) => setPhotoIndex(ev.value), []); + const handleSliderChange = useCallback((ev) => setPhotoPosition(ev.value), []); + + return ( + + + + + {imageNames[photoIndex]} :: {photoIndex + 1} of {imageURLs.length} photos + + + {imageComponents} + + + ); +}; + +export default ProfilePhotoPicker; +export {ProfilePhotoPicker, imageURLs}; diff --git a/limestone/pattern-single-panel/src/components/ProfilePhotoPicker.module.less b/limestone/pattern-single-panel/src/components/ProfilePhotoPicker.module.less new file mode 100644 index 000000000..b559778fd --- /dev/null +++ b/limestone/pattern-single-panel/src/components/ProfilePhotoPicker.module.less @@ -0,0 +1,8 @@ +.profilePhoto { + min-height: 300px; + background-color: grey; +} + +.slider { + min-width: 360px; +} diff --git a/limestone/pattern-single-panel/src/components/README.md b/limestone/pattern-single-panel/src/components/README.md new file mode 100644 index 000000000..b1a7853e3 --- /dev/null +++ b/limestone/pattern-single-panel/src/components/README.md @@ -0,0 +1 @@ +Reusable components for your application go here \ No newline at end of file diff --git a/limestone/pattern-single-panel/src/components/SaveButton.js b/limestone/pattern-single-panel/src/components/SaveButton.js new file mode 100644 index 000000000..d7a65e04c --- /dev/null +++ b/limestone/pattern-single-panel/src/components/SaveButton.js @@ -0,0 +1,23 @@ +import Button from '@enact/limestone/Button'; +import Popup from '@enact/limestone/Popup'; +import {useCallback, useState} from 'react'; + +const SaveButton = (props) => { + const [saved, setSaved] = useState(false); + + const handleOnSave = useCallback(() => setSaved(true), []); + const handleOnClose = useCallback(() => setSaved(false), []); + + return ( +

    l30C>9hiss7Iq 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 abb6qV2v^Kl_BU9!gV%-^EtIugfB)IYdcU;* literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel-redux/assets/images/mural.jpeg b/limestone/pattern-single-panel-redux/assets/images/mural.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..205b742316e03370b906cf74be746fbfa2980919 GIT binary patch literal 45224 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 (m=q!;duuIure4R$3E=AJ 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 literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel-redux/assets/images/violin.jpeg b/limestone/pattern-single-panel-redux/assets/images/violin.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0f2c9b1d66461385d591fddc488d5b3490e0d96c GIT binary patch literal 14128 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 literal 0 HcmV?d00001 diff --git a/limestone/pattern-single-panel-redux/package.json b/limestone/pattern-single-panel-redux/package.json new file mode 100644 index 000000000..04c9feae7 --- /dev/null +++ b/limestone/pattern-single-panel-redux/package.json @@ -0,0 +1,48 @@ +{ + "name": "pattern-single-panel-redux", + "version": "1.0.0", + "description": "An Enact application demonstrating SinglePanel with Redux.", + "author": "", + "main": "src/index.js", + "scripts": { + "serve": "enact serve", + "pack": "enact pack", + "pack-p": "enact pack -p", + "watch": "enact pack --watch", + "clean": "enact clean", + "lint": "enact lint --strict .", + "license": "enact license", + "test": "enact test", + "test-watch": "enact test --watch" + }, + "license": "Apache-2.0", + "private": true, + "repository": "https://github.com/enactjs/samples", + "enact": { + "title": "Single Panel Pattern with Redux", + "isomorphic": true, + "ri": { + "baseSize": 48 + } + }, + "eslintConfig": { + "extends": "enact-proxy/strict" + }, + "dependencies": { + "@enact/core": "^5.0.0-alpha.4", + "@enact/i18n": "^5.0.0-alpha.4", + "@enact/limestone": "enactjs/limestone", + "@enact/spotlight": "^5.0.0-alpha.4", + "@enact/ui": "4.9.4", + "@reduxjs/toolkit": "^2.3.0", + "ilib": "^14.21.0", + "prop-types": "^15.8.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-redux": "^9.1.2", + "redux": "^5.0.1" + }, + "devDependencies": { + "eslint-config-enact-proxy": "^1.0.9" + } +} diff --git a/limestone/pattern-single-panel-redux/resources/ilibmanifest.json b/limestone/pattern-single-panel-redux/resources/ilibmanifest.json new file mode 100644 index 000000000..d946318dc --- /dev/null +++ b/limestone/pattern-single-panel-redux/resources/ilibmanifest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} diff --git a/limestone/pattern-single-panel-redux/src/App/App.js b/limestone/pattern-single-panel-redux/src/App/App.js new file mode 100644 index 000000000..26b93d5b4 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/App/App.js @@ -0,0 +1,27 @@ +import kind from '@enact/core/kind'; +import {Panels} from '@enact/limestone/Panels'; +import ThemeDecorator from '@enact/limestone/ThemeDecorator'; + +import MainPanel from '../views/MainPanel'; + +import css from './App.module.less'; + +const AppBase = kind({ + name: 'App', + + styles: { + css, + className: 'app' + }, + + render: (props) => ( + + + + ) +}); + +const App = ThemeDecorator(AppBase); + +export default App; +export {App, AppBase}; diff --git a/limestone/pattern-single-panel-redux/src/App/App.module.less b/limestone/pattern-single-panel-redux/src/App/App.module.less new file mode 100644 index 000000000..23782defd --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/App/App.module.less @@ -0,0 +1,3 @@ +.app { + // styles can be put here +} diff --git a/limestone/pattern-single-panel-redux/src/App/package.json b/limestone/pattern-single-panel-redux/src/App/package.json new file mode 100644 index 000000000..bf7e48160 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/App/package.json @@ -0,0 +1,3 @@ +{ + "main": "App.js" +} diff --git a/limestone/pattern-single-panel-redux/src/components/PhotoPicker.js b/limestone/pattern-single-panel-redux/src/components/PhotoPicker.js new file mode 100644 index 000000000..1d24ee830 --- /dev/null +++ b/limestone/pattern-single-panel-redux/src/components/PhotoPicker.js @@ -0,0 +1,47 @@ +import kind from '@enact/core/kind'; +import BodyText from '@enact/limestone/BodyText'; +import Image from '@enact/limestone/Image'; +import Picker from '@enact/limestone/Picker'; +import PropTypes from 'prop-types'; + +const ProfilePhotoPickerContainer = kind({ + name: 'ProfilePhotoPickerContainer', + + propTypes: { + changePhotoIndex: PropTypes.func.isRequired, + imageNames: PropTypes.array.isRequired, + imageURLs: PropTypes.array.isRequired, + photoIndex: PropTypes.number.isRequired + }, + + handlers: { + onChange: (ev, {changePhotoIndex}) => { + const index = ev.value; + changePhotoIndex(index); + } + }, + + computed: { + imageComponents: ({imageURLs}) => { + return imageURLs.map((url) => ()); + } + }, + + render: ({imageComponents, imageNames, photoIndex, onChange, ...rest}) => { + delete rest.changePhotoIndex; + delete rest.imageURLs; + + return ( +

    gJjvK`6P+;_?dy2QAAZF>OrTgQR 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 (m=q!;duuIure4R$3E=AJ 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 z zcv1{_VSEfj7~Ih@ke8H(V{%9~@TvR$CREoleiuJ;=fdqS(T|MaWXH$iaN`h5!z4+y zv2C=4QES+0-gP~0ZfctAB*c89nZUu@-2B;?gnpYl9vqBGzof>b?u7YBmmPYospR7! zwaCs#ErrR55;J!SMaZ!hr-aTGHgYc4I=D`SloJiXbSi4kM07;!f_nG z3+-a$iAEff19na5+t`A7+*nZ04UgOYvTi??kbaAhn)0}Lf41PZx9jj7HOcoLc`_ev3^m`9V+=_nP>Z0o{7-Dw`LaOVMTLirJWk&an$$Xe;I?rGVfIbWp7T@QDW^>9mqe4g zr&2P8xk>UJmG!Q!^X6Uj#>;P}AN9p}> z7y17HY}JnBR3g10(sPDFR4COy3AvVmj1p$jK&fkW0>*A3>>YO}qfA>Xy#CMAfJb5D8Pv7nk`J^ksD=)%{y(!%w0Vy|ybMl=e#D>S4p)|QUF8!<@{*{&AA z{j?PDshKT_7rC$`(6O_~?j(h<0bPAMc?w9Sb(FzUGjpwBFXv1*vZ=WO%ziYqb)Scw zw8f&yUWy-}I?~g47~q7h$s@w0%H2s(pbWqpn$+LJQjM{_wNgqotiTH~w_R;qmQ}L~ z-28&g66$1md~DVLSXJaoUO=Xg+Kpt81$it;@wSH5NLwaCIiSrHvMPFZY5u`YDK>z4 z<)gsEb|4%20|U8%C#OJ0lo)3WwA@0eVR(d!2SPp{J!w_!1Dlg~8y)Oe!g~D0Yex*z z_ijKtN0M`K7{Wlm@rffpz#5*{gXuYQ*%O(&YBxc&O41wu0Je% zt6QZ3Kv)mL#C$v{`77`u+MBP(S`7T+GQitI<5~@J#clww09a{RtCn_BNz{rs2SJn{ zB4{>J7}245H>%)UX;MQ9iB274uBATRHBdDQd;KL=%>z%8u67^ z@q9dM70Ck2{_)f0(uh8e{fn8T?JT4qEK%i^Rv*-TwY~mT*YWAe_wDpIWFKkVY50L7 zrJHZYue+Z^r#82Z9s1Z<(bP5;!)X%|C~vr`p!jMpO@!*qNU&ni_)1#8&r zr;QC8d4R{tkY-}U3AXZ}5#~HGc$wTtjO!N3v9y z)mW3aOVnbQpdM_h9AqcbRodSXSJ68c_!tD(u+Ng^VuX#mdX_*~0uRoU>2cAt)Y&`k z$5!&O)5zBp?cI6;&QklWT{`gO-;+lavBk#Yds@a&ZEI_99<>emtNi9QT9BQiL9c}@ zJrB%%h+D{OR@aw4^dk+)%`SBXNb72~>C3M>F69%TI%!E2*esUl0Jnuv8~i5WC6ID} z$Dvg$SC&Lc?6mCWA!>{<#-4vURVq=a@A9EBBaYK=xZ(x)XPQLjagH3$igZFox@q#R%{KOq z52n7f!-qYwm(&^pgJJ+Z1bKW7b8W9Ky*AFPxU*u)tqPzLAL_k@zOC0EPfdOl+S^NHfwD*#oOvTc(u*l0U!khuJ7YKQ5jGxt*k{n!1x5S~cKrVUX_qI{ z^`N|eCo~ecjkQPglkm`*)=Jvem4n@$_ZX?LZbdLEfC2;C{%*Gsg^ZqDVSjRzfxVVYLU5(|-i0Mfkw09$!>OD7KTB3=_2CeE7q6AjZb z{-^2`TcBFko`yZjlo$Q$-(17hIt>S-`EQ64oj%s*_gAo4!%YkGmU~T44Thqu} zu|JsOV(#fAo*5EZWpTKs*6I{$PPVJ-eR)f7+lR~Fxjo(79jDInoxJ#nCC8bg zk0MaYeYNOC><#a6SGO}Ty8OB12eG@WpX72gec1m1P+@{hmsmkuGudgq&yMKyK0wI&g%yPN8z-c6w`(XrVpb|~|>z94=#OZA{^GxyPfQn{sTN?pu zAF`yP*>nrJhy&w6f^+BNOp3B?_YdK{wWpa1TjsEMIdC%Do>8@~4|p z;yy6_<=}fyo$T0gqk(bzhkVI`01C{|o5aiF>mbnW8hF+IlP&YO%jQ1b&+abB?rc`V zoAjAdO%yWkU&>`?0IRDD5m3@uPrQ~s&h9Ql^;~9HiLWj95%R8zj=eDqe&X%<`;Ht~ zc~Sb=y~x%l42$}m!CEFKqg)N12f~(ZGB;a>ufbm*AJ)a6Wt^}YKfh61Ta?FnsUOm0pfXPD} z#JfWmlKR}A!T>%Mx@gF|tA)kqd5O5Ze4o^FZ#MPDO9-QcU)Ice0pd+AGPSs8J^9$& zhiK!jMs#q&6G^cQQhTbl8@90)Ae~Q2TdW;V`1k+jf=GVHfg0#X_?agr*45fMJ`4)sC#=49~ont)PM_yrMnwhNxjjA zFkPg>lWZ;HZ1sXPPhsKOsYNL3jP}}iE?(>QJjZRbB{cSWpVAwWv}Twn>AeHVlv)LOe>#R zzekhE>Z|jup9aU8AHsg;@;My#6f)$tPrV|;V#7%$^b3-0p)_^pg74Ntd+(Cvush>7 zg5`nEmInnl4@{VC_#4Ynp|_1La;4&AL!0f+Gat9I8v<|cTwIZRyNYa<46U~&+Uxy3 zL{_{&)0+9uwDP$Oxp`KGX55TSN-RM}HY#u6X?1Pn%Shv0q=yrGUA6)V(AvWHw_9|p zB0V(8?CaF%wxQ(tkUDM%cV}mJ4{M~5{Bz~ecDKNjUa5gu+Yp;sZNxmQftC01YZ zvu@Mvu3h_d>C@`I!ILLHwehkcg#MZ14-2sX9m*K|$R@Azydm}M^TWx%k4Tt}@e-~N zo$85JquQ99z6Jv1VMlbC1GD4{L$H%`u7p~XY+lVX7AIaZQzRlN^KuU1?IPM0C#g~` zp!n0zWUdPQvgBYEkBWDd{ks%fXa`UQQgT>ThVIIOJ|jnw+RT6EW1Z7O?2ow>x8nP9wF_?qnEG2^l^7djQ;o?FhagQ< zBHVafRkR zVN?o87rus?LR*nO9hoLg!r_}y=W$8DF#2|HU4|uXtRY|k*T=1|TyEG8-3y5h0>uim z<&(Iu{3xJn(yj5f-1tN7B$$jNzOj}`Af8gf5Y}?O57kNdUrOw*O=7nRAXuOv=pFR& z*GgJ49dTu6h%biPMWTjdYWMz;YBaE8j>s>>AqQQdZ}1IMTW(geiv)}?Jw~5D8aJZO z`6=X1jhT@e3j`n=^(5>3>1pI#?WT|0%Ow70;dS_HYF{VM20q$pA<4+vM&%)sTU%Nb zGSZ;QoAi#$600x@&OtI2@vtYxp>^e4+!Z;kl4R~+4a;p%EImLQf%jE$!g|oIU)ffN z9UAI@3tHATTm6(^YzNES<4lWiY;Aub*4op;-b!4)WZ&Dd;Wu@K$xDrH$}|Vcv}$PW zgB181a%A?wdHqC#VxVYmYf@Du;H%5ZTN52dr(+E*{%-?YBF%qw@|k;2k~dqNP>Z}B zq%#H6>c}SoA37D8@Y*MB|+tTE&9~{TX$lYPiT;#f52p2$KXh+=LuMAR76FLUrV2cruMaS-dz)ilQ01k9+&IZj0<=Q z9MQ_i8j#HuTDwY=2h%3;0^6b721YAq^kOhbOWtX7rZkn z@-jILT*BftRse1`{8#V;!jIGXkH?M7%_5k9Cd7-a{OgAty(xGK$(fV~x2X=J<5iL; zw%k8uWI-@Ti8jbIl-}xoRNBi6waO=AF}%QSKD2y==o>ak70sK}wjhr$DyFd;aoCRw z-?{udrV)%wjbpMly}a}zp{V^nGS^?r>tsA&cYZf7hPgPAhcBeileve6gW!B^T$kr% z!>)ZZ3SGm*{IdNZ(Q1+fSP<%`EG`^?y2h5u4uH=BD({C}*9+hoU z+*S|U_<8O>CzI!;mkTc`cJa}IzLimRk*{)YPeW}g8~yz*HRtl^`TRZRc4YnA+8oDY z=Hsq(k!0fLvj{S=$=X;A+gVs$O~3Q5ubt`b58#TQAC~Xa;Gvq-oPbz;)3pmSS3PLw}-&+7G6Z*O)Ek1Vl?a1~c%jej%!|>sQ zbwT00j;G;J-|gZnugA?Z%i5i;B4=zUT_YD@5E|$I0A0T>kMq~?D~Tb?#*f%TkB$@s z0Bt))fC1nsXu$qbd>-D%IWeFaGMfiFu_m;aZW`G+dB%Tw&QI0lEO2iB07KqFWKrk0 zOJC!yHqt=W+FR~UN08&>mmeZH(c~M9v5TyVJVoznZ6u++v7h93dt$j*2KT+Zg>=uJ zP`hDEhVB>R`RRE%R6FG`!TQ|0<5B{S^J9(|c;&0!6+{EBH zCyxt;{?{~&U89IFjnmCRBp>}XYcn$1+SWhqU-sLM$BF*{ba|Y0e`fgIzYK!*kPA(b zW6-Vrwf_Ls@TK1R%ueYw=Klc4(uX1*OC@E77yUwC+d#u$J}s|}Lzt*;W_ZKNSIK>n z-}06-y2Ivl`kHNKOKuk%xRPrkvPkHl`rIsP4~r9RepRNU>{#S^1j^+x8ygTy%BvBK zxb5zTU@u~~wXJ=8D%#7B;X7qFVsZ-Zw&8oniH{SE#>I=4<5hXXsiW|t7*NLlfF6q!Tpc#P8Db5 zxxNf#BmlBz;maJR-eqljkCk+BdZnF~JAb|K)3x*4D-#=)%*<)|4209w%_ckrsGWM$3U#SfyYB z?kFt4o~NyJYxVrO_W5I{UCqzr<8teffgGHITGPlife9o8LY5! zUc$=mtUMlDjpB2LVniaz#Gf8TWMw^dUr-~(O+C{*r#_ZkA<6x>@4R!1lD)r~vmRvG z?c+$z?c7{w4wSx>{?fGm-R(Ty2ZD{I!ImtXxr~_tRBuX)owp;*lTT8T)Ew?sBJdoX zuJJ>Yh*i@fQ*DY5sCit9OK`5UoFx6NJ-Z(jKXF42?Cw;bb0%;@v{4eO06i4iXcx%qesO_bKN&f0?`Bawnk63&eTWu#;20e~Mm zI;U~vz4mVf%JZ4gahOrQXSPDj>WAA)j;u(wm1{9GQ^QEf?0(|KRl^)3**OWI#5`ru!-{{U)vS!6jp!Y>t#aKZpbxZZaF*+mVvllciNMdI+Wc-9RUk$G-C zV#VU;Hf@=Qb1?wwKtpZb28V#U@^R-gWyi?M<@r~ZT%JH~w5M#^+ZuV4%a8pCVJu&~ZzOU=#{T3dPMV&V@TI4d%jYc4)XeM- z?3N3rX93L2zuR*m)AC+R7~N0dbls@>iqXED@@s50$8+o(B9a!~Hm6E*lO%%zf1gr* zcA~&AXLA@G$CDTqi!omt9#f&VK-g6Ijcz_Q9j+DES$GxWJFsvOrxP16c$3+1h^J^5 z2IaH`wXG~`Nd3&2{LVb3Ab6AB-H9sPDLUUz<|(f!=Ny)K9G}(p^jR;E?a6U+gO`r) zc6bedVRLh}y41SiZZng|V1DC6o!pqbc6;qIMy0X?`(X?NO{YyoX|bg3clVPh_Mbb6 z-#xjVBjIv0DssymihJQzw+nPG0l&tnw@B-WwgE0M(Y(Qhp$cO|OINJhJ}ibeEBok!{Wx{Xni=m)ED( zf3!K0PuLtvvVdZP+SAH1R{sD{D&IO!uDLgGl7jg#U&nR6H>+6Z%Squg8zYZ`IUZ3I zY3f+dtJ86yV`>s%w!-9GycqD9=W>gUqyBBIPOCZNg|d5b!Xb3Y0-b#Q&KlR0w!p2$pjy3a0FQN(?dd-+00;M6vfz$eYbK& zw715NmJ@kaI2T+OgB>vA$;@^xlE^(#ZU<9+G#x2-=an?X-~+s25Sj7=q$qY6p^saz z1U2oTuCI-9{h?Ee<)05A%QQx8CLY|L;4K;kI<)1O<9_#FX<6C;sm7)=5? zm`Pg$9E9s{Dt>BwMQn_Z?fEfEjtfO1x;lOlwC)zB?iW7082KLPpO}YcL?UJjbjV-> z+vjVMQP=0|)1z;uL3xa_`21|nZ@Eg5)1|5PPixFpaV@R>5c5IFheN*iW6!TmJy0uk|BkISQynn|I>*TDv2Xswq>J z#q3Ri6y6Ct7UE>Q%FCfv(%NfDzem%vJZxEQyn=^8*4unBW_mS;qLop=kPCD|ywsPdL1m@E_ZT5H1=y2r7Io!k4DvocNiVNXR7E zU4F`1c~NoJ-s$ft*doGK2nj8 zr>kC zRMt$wKkdgNBklZKzSqZ=abx~nEv-l6e^tKI_9K4fNUh#{xd(EI7T*s->GY_5zq0=T zAL>x_l1kp^$W)fbT`L&eF%&N>v1Ds8I+LJ2RHFSb2_3EhtrXz8WjnsJcGz@@{-JoiILz{e@Tm0HrwqfRJ-+ zegMWUZPL3w4nO@Jw|qoUxcJNIT}iRICukqat-R&Wt!eoU65>XdvIJcYrodL#HrQLi z0!(xu`bwb(;c-k(*XN1-#t1JdRL@}G@~h~M$vEg_lZO-RA{L2=kbz*p+SE3`v9+0*Fk>0r@#|dM ze`ij=)$S$7wc>rjr8OipG{7Q-0e1E97r#p9k$YTBz%qJoU}@l71!wBMX4PF>{{TSj za33sf7Ye6w{&jB-Y1;NtP=G6L+M4_cH?<^JU}tW=cGJVHRynPE#baeQV#@*(5?nl& z&|FdaStld%(%rZ*zC5iMQ+6FM^R7(Hy&PO9Nd%1xt0^v~);>N|+2okvSrCW_BFqhd zr}C7XJB>@@NIXHUdp5IxoY=^5<_3r1PpLNrnh?`2?b}fAAv9t}gI_A9-3FHxZxtUC zFZCERv^P7{DYmDrPV1S=TH>d6p4p1cZ>B5E_~OQvHHCqWMF#i3tH-a#j<+GSn(!4a z?T*8yx2nYGOxck~l^Bqcpj@t+p9|CC;W>FXcK32FP%-kZWPuZWK$|gZ*xTV;e_xh4 zj_;S(JXT@*rO3&WxdwSzVTN^^7BVahb|9PlE2rbEm_zMzmcRRd+n7*x92f%t!!IX@ zlV?2Iw3AGiC4uQ{`fHExy}S3*tKqEl{{W+Xq1sXQ)-;~;iSwi+8SVIE9RR=IQ~G^< zmDA@n8*Ic^XhFLVADv4XQrF=GvU+5&i0V`Uug%X57mc#Qk{v{^>Q)QWKn+)U>#WC=wa(jeXU*jv2iy@~c)ISh6(2)T zlPlU?<#_x)<%M|sjJdHgWGC8|B~k+sU=Hr9<|>-sTa@SHu;&K-oceFCL`}oZxbo|JR z08hr$^J%wLJM*x~!}IxVh`H?Qac4$_0Bg4Btab9e>2}sMwk@Y|!08mrbjp9rFeTdT zG`RWFT@NUqbAHlu9p&1YkaHREV9hf7n3$Oh@0jEosb*I66aMHnq`zHd#8X`_W52f@ zy#2S@ymt$nrVM-}B2BU^!dY0|*;s!`Vr_AyC)a6j4fE2$4tKe@{w_#yqE&%rZ^!;% zy6R~(*6qrhUsg5UU%PU0J;uB)C$*I1s=P`RZ4SW{v0G>_pkrMhJtR+ktZ12CzsJoV zv4hA#8H;F}-jUKZC#l@yb03$|wA=Fneoj~%2OZiX9JnzbFFR>L$jc_-8DX!a{s3w_ zZ+78Lbd!;`w{9-|+L8tbQpbZI52?Qs5T{`_$md}r=9eoqx2v&Zt0CS-9Zq$5ZO zb^ie329tTp^O+fgEro&TI#fm0JFuNf5*!<=1JI6!jAz~7wp=G>H*Rqq+neuXa$JTa z54$ZfBn672Xo5uf77QbVot^VW<&{n zHM+5|)5@P;u6rfd9VP7#`+w}N-sFUs_&=z}!rCQ?r)eQsS5Xd0Inwq z-=1$LKKJhq-R!cGGME9EWdne4J~$mslaVG9X>xf&THe3AC4?;|}sN;lozN zqd zeiOJGw)=g!-UExq$j*)+7n>(^a%3mpbk_EGZ`lL~Dx&cAgz$bYi5So4FI0(OSlI`Z2&$EuhyF|CoI>x`)`ZxtPHGPCS_h*5>uIoru$lT zy@3PH`r3rx_iXS>C1S;o6^j{RU9;{MV<6GA`P0N~!YSD$L=f%>6rFnMLX7@YQ=0zi z-I&<3?O)T)8cOY8Npt`a@EfWYudMPy@2*ArZ@760CdEv-5ZFaE{h=W{OAsx8FCgarR?{@waNB=wF>~6uYWfP5`( zhN)%nO>uavN0~@hy4=bv=VLNli~5M`Nn2krnfG2fhm)Ex7$T6VyRED$A4PQO_4n;e z*s%5=2ak;sjo53uZnuByB>9t9`ShRHITG#sxM$@_i25C6+w)e}_*HFl$kTYoWy1Fm zjllKN_X7U_#+n77{H9B^k~u79d#r_x^&*&=i18QoJb6Sy%!6|>i?_zK?YtGT)fRa@ zrY#=p-Gz-YC^mEL#+i+*p_u%Jv>E{Lxbe-KBOO5m0r52*?ORC&xOk5V%yCk>DO_yW zlGfw796vZ&Rf%(;4!q zFEy9R{!Ur3k&0rpXsE2lzyf+{<5cyU^qt$-KRvVXgJ9!Hd~)Gt_O%kfK%u&uc~eYY zOV2=k*MTk~%5nseyFWqTSHWF15<3dS2Dfhin={t%UoL?WGE=x(0 zm{_>%Ry0*5q&L#QbgE6To!2iXgyM*xR#`tT!I$o(FefdN!xI7-G!e01pN_QC$#(F+ z%Sc_2vllHG0QI+!q}5H9I0cN&ICEtY>G3xo%C!lM2m6Hk9Wh%s^=(k92AW!{659kkwK90! z)yUm%0r9Tr@qMSPwl=Qak4KDMAHN2W5l>}@&dhQ-tS0koC zetsyjeU>&?0I2@}cmOpd)&5yW>_P50c4M=!4z}F8yzixSAkOm(#PiDQw7=$s7q?O8 z@}XNC8MsLcE1US-{XnG3k|gCX)OG$;1?Ol?vhmrL@XC~1r1h;qC58IFDYXc{2 zIlZmrin8@(>NW$Y@$&0X+9|Ck_Y{%H(pt+N^I|jsM^3&~SvXI+56DT5>jZEstbh?A zdkd3pfNCkVZMp{JXWtCW02d=@TLrp{bfZhJMZQ}$Oo-!F7f9|AMu9;Wu<{r1p-tPq z4dYm)LTp`$TmJyTLg3nma%z2qQGH9=-ww2t@-n~O$%=N5A+FfjVoi2XCqukcJ~t6>w9SA&xK0mva!dw{=-z!}Q&IZ%x6AsK_Z{7O zbg3%nu|0lfh6QpLk%zVrmFv68gCU$YibjXW;aW97fFaSWIv<5LLD&&3_gRlo@TC_( z1{V%N8d|d>oq%1!%tdJ$po~15n%h?0Z%$W=NH#5V;aQU1_JwPOCjS5n&=&+)9e!Ub zCCk{AfFzq6jcYV??o~?MT-F-lP1NhD*W+4*<=P94fAMP2Y<)xfE5yx#*^oX&LK!nB zY?Wmsv&Qz=Saj$-E716H9(VqZc55*soQ=vr5U;4-#NSSpZMj2Q((`nRJ=%U!=sd`z z)~R5(5eaN4q__ggw(-->jj7>#BuJBQQFPcre~*<3&}^1={{WLamg}$mG z?m?o+iadzQi{H^}Xlb?LhS;Ha^0MYgsBWbf?F8PddP|(EawWf7Kp%NN+fw}}IUP2*F{3K+ zutto`fauR*d*1y%HO;s7b!*eCCEp}z*3Jp~Yew`QOyxjS3^gL`LDR2KokCTxf@USG zKLxBj%{(Ri1?Rrsovl^YIrpKs&ZjakdNuD>@aLU~XAu~1f5<)^MwLBzTj_`f>{xtl zVO@lk0zHq41xmjM$|j+q%T{s7;*~14$@{b}`f) zdeyO>QO-C}jxlM_YM_Q6BUH~xNsPM17fBM`bpp1=)H^XQ;=@jq`t(h^3)@84;Yw2>fTvS2U8>UAT(8 zjKXM8u8x|6Po%|9eX|r>Bo;888JBSrs-DHf z2a7PrD-B-n}o3#<4C(KO1G7C2JF6KDrOSr!`jX zfhgdE0w&AJU}OU9=c3=hQra>pV0RDq8Dx(e9iL$fy5nH$s~T&r0&OaObGNwee;?V* zQnIeGWJjckeh0*S4wbdu>v(Ool|#0BQ;6*>8Q_XTkuFT{larG<1>}*1g}~Cv2GthQ zn}4O+wz^?1bodzyc;W(7=s@f6ugKJghoM$Ls zr#QftFDDi(kt;H`OdF5CAPyCdgo9$kO*E-lm8Qd(JjD4R#U!!JtP48^776huK}%)^ zT)tlJ-X|-tdzyS%avDzDjnzUCsj=}i zcokeOUm8f83OIjNG<$(#ZAdoK`r4ZmxgdAnAed_?IKl(%AN3Kn9!gI`SNY3HYvC{7 zZ|z)`P7X9A#hnXHkvqBGN`Fe+4-H~h|&K5slgq7KIY zU}s^nszZvY0(wwx>IaQNnPlW*O>iMVM~0Uar^!#ccva?EurZ!&4C$jO4gz<&6YOb3~WN79?Qfw{t_*7 z<_#OHl)W?F=+2v(z?%y-h=o;@2$;aybi1XFzY3(+9EIDJ&)V!POw4(+;>RVir2RHA znEQ&W7yz>FHzfGAF4qLTw49z>8;(tzkmLbDjxaduB38~49sV&rjoytJSFt%osZR+`pHBW5PR?J87gJSndeki7Q8`JUs>pB9KVZfUzqHYb`_C(!l{Z1e;meZ?kT$H*t=2Uk6%9?N9G8A^4*jRkjz^G_ zoynNbkGpOZY-~_DxCMMqfHiq|Pk!4>{lP1CZz&-~Efy?~91Wmm+iQ-RirY8O83X;V z<076Mu1V#Uc@eHc)=gY-3lUy46VWe{%(a!MQug0ojuP4X3 z$&V=|8=#PfAC~_B5)Hwt{{X~0ypdCtz~njDI4t~k#pBy}kKD5e@nu5DjOSlLYXW>K zJ8#RQT{9}Q9gNT<@y+gGWkn^RX;g)pDUFek73pnBI(b&QHoG>i51UTP;dt&B57+vb z+ukTcTy@=Z*7w${tl>YV*|>h~%#=<|m)dx6auwLgYi)3D6kgZ8JtnPg%?7{_2rW?jDB8JY=oB%%q(@7pd>uS4qWZz0np_9E;;+ zqk|I=%;1g4PJ~~;ijUG*r_SZ|FYP0i?K~9%(ITI0-@w?@=wGi7dnQ7;_@SRcHcVvr zYRqj{s7CjXh^@h-@ki)Y)%OdF8+7^B*78lEeo$H8dIkg&uApga)pDE8A)Y)by}3kA zrLTV*9-3CYkAmF)0H<%%Hc(}mn((sNDcjcKiEJuz#GEX!4X+yu{MNNB=of^Pz>vz8 zXWFL6QE^e)FQvlICCslUEGobxsX745r>R<_ZHC0H>x{~2c-&c-dcB};(Aa5Dt8Lm= z<+E*z3~o-sOe=jgKXq3TJfBf53==~HvgS0Qv8G!rVeCev_4Dhcb9diMOOCri-f?>z ze1F{4GNktXR$#<2>U67oE^i5a{{WIUM}KoLV#SGvFo7W;BA~Uv7P0tOMfgnR&p-58 z!m!WeyRVVMk(CZvvd=DxZ5hy#eg>XNrlq&vZUTFcA195PNOC_Kv1K5F2xHdbt)?t< z?U`JDuuBdL5n{wgf97d$e24Q22}sBdu(glGjC)XatLqTkVt!O&7G+|)3z7%K+SS(_q4&N{-ya+N zO*eoW;MZne;y3L(y4t6`;QCHRR5L4dJDWk_@~G8i3Fdvr$}1{tDylXQ=_9XNx6h=$ zoYGfukg>RO9YX2$^s7X=jK`C9e|WZvVp4$h3RsJM)ve?&L;brYqqk2&n~ytG)r*{) z`Zpf~S+b?rQi*Ugn);lX58G->+LNO$T&B^B>DGmYjOsav<}y^967077=xo}FcJ^1b z-0m93bR+=YesnKKo?72+s|gn&?X-hnbSA^Xw!tJa!8-e3$$pNcuU}EW-AP**E$7Yc z$n!dTpfR}WEKRirpBx5x2h5SBm1JvfVZ4Fie+@i^7#m!LW{B4wOa3mPcv{t(aSGY# zXo&us1E+!W`zV&qUUAK7VX+%ao3G7nNUm`GmVuc^OBcSqFQqBi=kJ*#wo)}9gFI!4 z)5QM(jYsMIYTrNY88;GJ{*a8Ojs3@Ix0chV+G-kqRrmhEz3A%w&&b%{V~DSQzS=6^ z?y3DQYM(#q0qP(d)UvD8ExV{9wPnR;BFlYzjUk*!Sc}PW;OJ<;S95!)`O`=b2jD(p zutaBd$A-5QS<5!&8r%-F1uCCT)ixh-`O#;ad~c_ffUH!LD3B`#76a>{plXb!gHl22 zMH0LSRBhA)*Iz2sW3N!%bFGE1S+MZ#&=IX>oIOHAU%`A0XwR%aXn36dBeC!x&L`c< zm9o+{BJoEtx~Mlg5oY?=rSaDqywASb*{4SK5t|ENZOy)CN~KD4d*ml$`f~R>g5Tw8 zSbAdP91L`@+Kse@UW4tu8kmMuwv%nHHj)YOwJd{OyI+bj5-wu`*SAyFm;V5v@Ek(L zjEb%qV_O5@N$YQ|Rwk)}%>0>;z#wj)8l~wu+pOKs$T}!D_be^)6gB8}?aTXuY-Luv z7be{b+pX(HtNcW9Hz^>UF3PLwCs3zSe%f8GHQ}}9@->y_r*a;PrR)z{lviSpI^psa zLh2gFUxi;zk*_#bYdc)3BQED#mNsovQ*2ms5*Fjtm{@PxJPn7K6~|{Txp)xb)U4^P z_Je!;txK`zW9&|;e@(PCEGv~+S$)t3i);DoRM(`o>>rSANb7Ap>e@N}fq0G%WMtU& z(CRAIaORzgaxw`Wn6Woi+)u!3Qr2N@?mtTcOZG*wx-(w4xw@xhfqnX=Y%}3aahr1%J7RL`@0%PHb9_W=S?bm zTt#NNxJ$`){ILH3%%rhTj(-I3lE_H#H?@eZr`BEve~unuWqYuQC0mv7I@a4>a$Ps$ z6$W7-4WAocn^4(6kn;yCVq*gI@^DJ$DowBmg6c`s0drbTM6m`IZci%|SZH2%Bu5(l zBJ4o0t8HdEPg#AqXdR{5T#p^yk>_Sf8=Pnzki^@+GGVZ(y|n`R^sW!5*ITC!{{WxQ zX}2vLTsY<5m+XEPcAwsyENTd2(Xa5ZqwOJmaxs?%E><+Sxi&C5 z?T}v9A3qA7R4HTdd^c^+K2|<-)3l%u)5zh`K_J|10^|;tHEp-MOkp{smm+faF4Cc5 z+NWEa>M1=MkM z?6v^ZF4)_LRJokKSkC>h{ln(_`!n{}wuSj9AK#u?Q)VPsa_X5TOCQQ_>Hea9Hoaer zdtQ?D#}Brrg09@Ot){ZUawX!9PJmk1crF?|`nAx<`&V}Qqi#XBE zn=ujt9AJQfMuXv7rpiu#EMSO3KI~-$P5gh`OF1`BJ8O=`!o|qtagp06I!2I5IW4gX zuu#U@X?lIOy%J9%JdlGUj+PEu2=j5KQVc;isZuq#p)Wic{Qm&|0J=;LJG60=i{iNA znAzE4e0l4AOl>MFDhwsU@!(^A8Eed z8~9p*xWjAxknhZY(NEeLa_pU^Y@RFCusgUL;lG)-<@$>2`R(D!zPP!49m6n>6^?UR z!unz^V?SF9>0K2G$QNYyIO02-k>Y*W;2EHZvt&^-0Hl(r4?@?Z?jLDo%W&g+g`&Y( z@dUqPPujL{Kbay=Q2=P?}jXj}`YkoIAo9W|oM;Q($ElY`x4kxvt z#meMXT!^7ChE>=U8`xNDU{B7uw$4`5te3Mg@+QEJM$J*2i|xai2xZg&4&D2Xw(+aY zQ@dh^vBTr>W66$bF*m=i(h{#O+qaL_)IDEpPVo_Vb$MFr<@);<9oP zzvp&Wy1)=`ZF*~6GGcOtveP`glko_9W4TsAogLwuj+}mC2~Vgp`5v?~ z7~tpI&mV6-&My>6i!^BRM;7J^2lWEPkbbnsn&hqD*>mRd@lAmmw;Do>(0|lbV|$C~ zaA|4m;JKRyLZOr%A)U z7D+KPBX^Q4*mnCW)*jq<7aLTOYjmZ-^12MtNt#twH&sVfW(Xa30&Tj$T7)xC<9m_0 zZr#Y@c$`@BB7-eumm*RR?$Z6KRYLDP+O6zSAZC(VRn)`GtfJ^&drX#Sd?!K~xpo1iJ1z_}165ZUEuVQ`p@AxxSYl3bJq}41A`@ zE|N$gMaT~r`~`qkQb)sD7V_H6KsX_uSe|VP#BSF*-G|1Ba9`!iE)HQm3}k~^@L8H! z;PP4hm0{7gTg+7US6U~Un7`bxkF-WCS#e8{plZmD3lFVJl{m}k8FR6jB4{B{%>apQ z&?SNCOASNv<8;b^!aZOiQR91xy#7+B{QSI*Lyd?@lMXISYFQK#uIdGXfI3ull2h%q zup29f<+)B7rhysI1GKYUX^pe5v)ACfToF0psIv zCV7;*H@IU{s;NGk(3i2g+$nOh2xjr#uXO}^NVdAxk+aCxBmj>X-|@yzzz_vaDN^>v zK~73C%t1F*>8U;xHa46YIkw%shzdZk1EKi*=xW!lL^~TYIbog;XfNs8bIsyQYCg3u zyi?^&xg?N{t*>>rT8^si0`i#qi**~AAFb-Tr?E$tK>0TsJ<0MG&{tl!hb@6X1Cqqv z%53JcRf+j#+}u9eH0Iv1?Vkc{Z+m@cSXw39j#(1q-(uVk zvZl1@ca?V7%W-Qp8$%vLe{N;A9%_wkIoIZ*h321L4SA9f5O{Pq@uX5_vq_~f^31@S zytcQ^O>L=li@YSNz1^-cU$odbox@;!RKw#CtxCR;uoh|5#dKX200K$3m{8e zZ3L0=sh)-M5fZzBvbiD1)Y$pcN*T0;9-#bzK^tAIadij8 zj|$9Q%pk^A-j-W+wK065!Thge8n(67wMlk(Z}^;XD` zjXXCWI)?X^^_&NLsx<08$`}{nB3}OhgwU**WS|x|`GZS=%kh;+0d7F?KN=w5i@p51 z(T#^iHS-;7R(U7{Xb2~zW=HIh0Vc!YTL7PFNX&M*Bpt(R?D_q*l2cL}=dlGxB0Sv5k1azTVKNS4XhgJlWYAp8XfrBmYa(t^o z*V$c_?qqh?5b~gfze$cgg#@VlrPLGQ@vl?o)64pHaac@n#Um}1oB7)G*Occ64o%cP zD(>}re?FA4N^9X6zB^egF!ml4U;uiIJ7cWJwYhh8TjhofH#eYx$bn?IxkFw%!ou31Q?U zW1;sAkHGY!uR&%i428Uu-LDey75PoCLh&(U3nW zT%YMSH}W>9%Dy-(^3a2mwOad_Tfp?bm3>jLV~fGX$KgHr0gEaU8g0RZh1BciU_7c@ zTkVB4oMms^c{qtCH*ZrmMDChH5!e}qN_7lxA60% z!Sdo(JM}gLKu20IC^lif;m~|4(aX42D-oKOBny#$fvb3Pc@)VZRjsQ5sq0dUZP0Ka zxnuPw!{t>=u^t&wL(c4dFJ%COsrY$R{-1@uKaqK4vTP>yCf_RNlb3D00cS>8oq@PI z>0KJRw^`xRNoVu|M#H?10r92Y@H%r=ri{mZ!p^4l`qITLL6NMNJqq584S}*Wnf$fZ zuR3#H*71ZwDd9SM+wQ=d^|k6-a=yF{ahtKRj58H=b_`ZRN}mhZbT!SlZmoHN89-y^ zH?{y)Cr_EKoo-`~d5wd!WZlTi0DIt&0RPWPS##Ns!uQ*eFHhxDcEG|AKmnECiA3`iOB%4?dGe&KRo6uctxSgy& zXZK%kXTiwg;tZKoG2M>a%G_A`O^G_`YESmld1h4q01foAox5*=<>1Clyz)~&A)V(F zFk*n{par<;@vc9n+Vwhi{I%PO}^U;00oR$B3*E(( zl{5z6Hm27;LZ>ygPiY3R zISk{DK(lvJuBt`J|7xe1_kr{=NlX)qZ`WHFkm%1Nxx7i&1l_=orn8{!*?7R zP>E$&`00cou)4L^aJIDDYkMrXxHHYjW=S{dFrQ>(`bEZ`T6oaJ@@rozf8Osek(=3E zXB(JOR&GiuA(U<2g=26aC*AD!x&{S({dzr+6VaygvzXO)5;JKY5md~nt*&8F?_bnv}A zw3|ln+n=~Okl_BPzU7u9xfqrpsVYT}omN!qLg0UKqldIG6CObl#T%r+crbII9%lD6 z_DfToa7+IH^Qo7EnKY5Vq0gmvFwh?x9cyHH0`5=UURx(2+BpnSFk7k{kDUyT9$^0I zW;FQcDgOW>5F;uEr1-V`>XT&f+jvgn!Q`+akYsz#x*`tS+kGw%xDFa@djgZ#9OwTs}Mh z0QO{3$+zCg4PhWacNIh9(4Unq*B|w@p4a$knZj;N2G5!^A{&Q}$^l;uqopL)Mef#g zR?hBBOl5cq85K_5`gnW|R>ZxQFk83taFyns33u*uk2h5(Pqw#`&XQ*Krxe)H$rQO5 z@;dvFlw+_jz#j@S(czYU@uA`W0BZY>KPFGq=48bmAArcE)64jvg4n8kE-Mn@KC;XE79zMH<+c`Zy5jB66%}48rtM0jZ zj$&9aFr<-!<1eBGV;a~C1+~wl006aGLi*w}Z`~f>nR|nX?-@?{CtuOz`VN3yqq}(c zsQ6Pz7oC6MqqZ9p9wf?*Rx;~pfpfH5p|L+2rW2b`9_W_<=1c7m;%J8boh}KuG?pG( zP;jFZ+foIEX$xx)%Hg>DUVj&g%SFg&bK);H&qLqY@nG((3=&Y{ zep_TK0Ccf7KO0cmLDJApPZA`}=g}B@Vn$e^LHJZQfP6kwmlB#=V@v-4x125_UTc{B zb^yevZSxW8s1xY6JRn(E9-46b@U9cEoW7ss|CpN&}+G0Mjwlhz+@g|xSgG@)ZY=a9_?TwnlL6|m5CqMiv{ z7r72|#z;FQTU*NZsqCh-!N_uW%+h1*7gqdds3*>))jo4LZX63fM+t+KD{hsbOWViO z)`aZz$rc%tJ_148v0VJLs!PImvka*eIWZRYo=D@+$S$LPhUEMOFL9;CeFiFs`RXT{QHMDo;x}s$KKMDED6v1|Jp5^Fmg3oU3eI0x>oxPdnFd%Y4}!UtKXR zDDm>~$v+R3$)hSohOB`F_dmGg6K|DP=NAd;FcFW6}Nao7BAXf2hb-hM? zcb6DF`D={ifyhJbuj%o(O9T!PSb}{ZjS2I$bve|#f+&>V#a{{V#6*`tQ!&mG-dK0r|Wr-}!-y_S2W{vByN8_Vd<8b*|2 zu~KyP5#Ru~*+;+(Dzi%=EH^5E0*e9-Ei?_~oMT3>p)9uA!=>-7uUZc!Y*$wZO{_t= zJwECzrJWbNjue14k_q^0<641#AS(q|2EcT^F;HWuMcj1u*c)4@q&m(~$1o$@-`g$a zsMku?A1|E$0Clq?n*_xfHWClT_>ZenM~16h{{V05x67TG*BdDvr_3NesInoD0&GW4 zpJj7v{cERh?F#Jd%v$#>Zg26aD*a?6ZWkRZWM2C!{{Vnn<3lZnp1~S7g$7E6&dZkiH$T9%A>KtAV9 z`d;33qd!EE%aIH-$?U@`qDdvUZAM@jt>a-&J1yz=2NVYZ%#5FlpFPv04->X5%Q|b!d7zYb@+P@q*&YFd}v5eTo&pjaJF!LjsrJ5p8o}*h4PoyhVN!nlUqPiCi6Rugq6G?bqNjj_u3+Jw;VD z-Ud+%&H>j#R@xnHtxxGQA--3YjzU7kkA<}~y3P-H*TmWHd+U4!Qlb{#FH>bjw~ z73M5~vrnq)v+$GCQfpbkrrD;>E@(&+&VocmB&O}Vi1~fB$GoxIrIa%^@@5+g3zY?h zjkGmwCkStUWL>+%OUidN!sFP1mTay4HY*JP@xPTn)9LG>et$o0+Y~vNlZ(SDu<{4W zyqrCkIQTeN^2?Er0!KDM-86~-XFn5K?QaE=PE)Z0%tpQjfs`cXu%Y)FcJ`u-dYSzv zcaR-TsNsvb-N6z`l9?|n;$#rGvc>~M(LZ0srRtMRrFX#xCO$V8m(RlFrkSy0jlZ|N zEUHU3gt_Q#<>OsbKDnK_xc0yjbJMRWiNTc_5X|Z^mA1kpRn)0B0BP~3_3|Fx1#+_D zj%Uc&xR`{xECq>BRO)?1(qoV0*=Jm*b>zo0;YTmDtXpFPZNpswt4R~dLzm>UB!Fb& zITIbKtk-MU)0ZzG?g$Jhla0BGM*Hh;3!jDPQOp~~=7@=0I>?bfs>Iu0l?H=c&OZ^{ zJXp?I3|zEJu$60i6Vx=<<4M(0^2d1&=f&cAghg-2g@aCH{1!U={-T!CO%AwS*1O$>gQP(xDA4sNaLyZix$QL%sCQVmkc#Uh4_O_RV8T__R zRDnSJn^?Z@>K+!R*I3(cVPhjJl)}&Vv6|^A3Q+lzR+3niyuIXke3Y6&mmzs!hjK=` z0`}-n!j@|>!LD-0=kJ`p3%TA1reD@)Ajg$1EH|CYubss7~&>5F{APk z?J64KM2DfbkDVVp4ClAazqY;novq*h0NZ&PRrn0K{{T;&6ZI1p*p8#l=G6H1{{W%1 z#mnwkV&n0niWPxma-e|r0W|4wE^CjKqd5KI{kr9QfB#`W~8F*#7{f zlcFE)-|TlQ`)|jdMP!m(XcQ!xD=mQ@pvVx9s?zQ9ox|z9y|GB=X(U*rw&8G3U2m=K zY96b5DdjFinJgQ5L#4^EE8-}IZE=@^W{9+B(-wd?TOTi#39wyZkB9xk&%l7-=F0CJ zApVmltL*~8Ty#G=wBLj-lPw?ipSuq?#q+p4wo{&D$sE|Y#3XQtNZLvPsW<#zO0K(b zp7R?o;&VN}%+HaD#^*(snU2LKM7SW02^Y5E@f6a+-{l@`CM7R_!Y)wQ^sT^_rH?9C z5{BBRQ5e$HWDTqo#_o<=jRj+wlhPGPCrjx^G_o3dbGu|n+7~|Px2QKupAqq1RAW#WHua+Y{v89OJM z##g*IFWR2L z?k+F8I9^3yT;?+<$iY*z`$YQ4V_@3=+}6`d==p1khu3L!efbtwW^p`g%apL@WqVee zGDyR*B-kWl!(Nu5wc6edq~n%3-rTEmkVnDs(KF_I=_FCfWCe8>)aU>`YSI&HHKdMb zxf8VFZaa{&<*C>$bL!Jk@S~LRX>4-x=FRVKI~X5re9LH0_)wH?V3bi73XSJ;f8k6S zWPi9AKcMdXZbKE1;sKQT6{!6pzbnbFwj#rR;KrLSRDvN7y6-K?mG#^O^(2!@r6TfE z#~&lyaHW;qcC*+Sv;^ zye0-r!yLd{D6m)=dLSQ&-{31zlZ?e|Oh3?PW_xLAVk)s%{w{zEe9a6s+M?vLGhmId zGvjFFHewuEy+-${Cz7Xda$eDd-21HdLM`|}xxMOJsiX?va%bcv$A#|3-r3kMH_i+S**kA zZr8|`ej_R|BQnJ){ISth<5suS(?qtpf#j9s2t8Ep2l-V~58$v{I~S7fEhK}FmTV-5 zY88ubX)X3I(9+&^z|J)Xcg=<-k~V+SN=2B07jZh;p9tim$~)}IKh>|tThU^l6u!?T zA%E&%$LeZZtEXJ5W5&QL{&XhRbQqTM2yq~OP2q=#AB{8j9~+51;`V?* zuhi|4$Uvvg;=4YV8rtUhOznyz`-cqtW?XScGD_00F^Kvtj-b-~EV|{s`IiPR&g`tr zj7S@qk|;1`VKz(-N=nwb3G(>qQ2PDk>$gYG<8OT~_s(Bv@>ufl4~9Qeg&8o}i6vj+Rh=#+U1Z{PTmZS~s|f zxE;6DYAxgQu6cM`&OpSVWEOLM*8mR#=U2xF`6}~FhGMErj9E?k^*Yx^y&<=1XK9hP z*eE>(Gzu%hu`f2!a#ulX^f$dH(As2f86=FyBcl~-us?>xn*a}$>NR5TI<1eA(U+vYCz`qI_POse3jkV?=K$?G_tGYEY7kY9T|ug>!9mgUu(u4zb$5R0f0hw z_c{m~zBRtAbf|09S8m~G?Q5QZQXSN2szGycSXLtd8y`&pNg~FoE&yY#%`B{jZ^2=x z6w#cE0nqf&iXiP9XunVnv}--NBmwP{8W3I<9yn6{T8+4@lcLzjVpD-I3M+hiJlI|pi_=-Afira0$VdX8GxG=a;ei!Y(n}~=_ z&&JG1_R{BRu_K`$eGRYb)3c^jj3bnWx!P=c5nOTCkQnlma_0RP8c}|Lu~0ldBClr& zONytT$mH_*vBa!>AF7&}>z z@$&~4WRR+#fg8V_PwUzKeGUnU16!ME{@Rum%ABRIf3mAEmB@VRPPggSo*}dijW3pm zpxxH1o*edaBapk4l65_P0+K01uDag(Tn%cHqlKOY<5?$5+G!B%7wcoF8dCjb!rvP* zFCi+T{{V!Iesvh>wO`pbV{eVeO=+@8tF9RT0M6t_4?usF4gUbFAC>)=a}=T$@ubyl zxPb(2Lh|caF~77ZD^_Ve{@XWF?B)#dY(pO}6|yHJ8ZTF$h6W#evjr*3_1s zOgPFD7#P8|r50sZ&>L%OiV#`XcFcLPfi@iQCTj;*hDibqgmGcNQt1xVAbm#XFy70)k~$>$k3vdYopsCOpe zocsv;>16V6;FFt+lgZ_rd14T}N(c;ekPUhcmOeDa%~QiIHy1w`z^dXgOo~20ZGIm+tiHpePN^oNvqy$X^pH72Pta^N^dn>Eyzxz_{jDEuXyNe~&ayj1O zo@~UBwf&4u#Ue!@Ty6=y>~*-P{j=AIf1c9ZoB7UfBZ}o)JJ8W7V=9#nF4}Z7HJO+; z-KwmQmaEL>YPWlM98H<>O&ZjYe(p9))W z-oDP}@2EM97V&t+$h*$}ZGmoZ<$Pna~m(!)(`Z2tiE;oaW$CpX(LWQ^Wd4oGt3 zSlAG$FepXuZmKV8rNxQd%75>^>yL-W&v{u>BxA8iH-{?A9rs_v-@=y}=}lQ@{k8tz zckd_PJePd)eYcs9+md4$c;U%$(BDf?wwF`;Q_-{@Ta@BYMlID}8kx zDfGnbFYsIMuiG#B?|{zWxsPcu^5QYHk&n$68r!I*o5<6=zn34ly^-7>w7t`r+Z^0p z)bY0LY5xEcSuxs#maHGJZ#knm%ifliHgRf!+wc&xO1}@uQZrEibpbuOpeql1%wj%#Z3p zp=Gv>Vtne_)GWC=B{vU0_)UG5I`U4n}LAOWGtO zPs6GHH1wR6c`V%c7F?WJH>8ce;f~+|=}U&YVKxsWnYbbBzpLtRrN{Wu33J$IBR}dQ zXJ7=0a1{93h!dNZi{2{!h6cq?P<$&7fKT1d@&4KSb(O;JFO$s49yAGi5gM?056Z&d zT94MN@Xh6d_GTNdRJ{DGkw?b?Gy+qwO)8s}LUbezO>^ss%Dd+9)_-XG%aP~*0C4fR zeoG}|OsHmu3RDCvQw8@0fa|y^Ppwy5lJ6vu_3V&CE-W#+2?A|oMHgM`Z9qOXZFR{# ztY-bw$VJEZp=T`~T+0bZw(`4y8mEA!g|o{u{nbp??p$n1q)B3)HOVqt*L&^P$N)N0 zQ|E*{d&N6rya>yQ=~#<(WnDLYYZJk;3o|Xn?n(0aQw+IdAGutNF!RylZvsIid&w8{ zk>gPMRX$M1+89`qW^vgoERsnCQp#6$=PI6iulG{;SMmZgaHBojkv=!-H)A}C);m$X z=oGDY^S#m`=Yr8M9+yfc0=CdcM7 z6(nUjC4T4&H3EzOr!KLJ*^DM>n2;-Z(ec#Mopc;rDNmOrQjGlnFRLD1gh z^sVcf7j7_C_;-*1OnWXSx~{@i&HpxrwHRX)8>kfCVf$y*W0&Mb9c zfVY6_NwK8zgSInW4oqmm=0?5x>S-@$n8WB!#FWX~821;nj4$(R=}S93>7bz9l?Vdz zTx|o-<5is_doyC;&6hi@Dy~^cR*;3*G}PPpRIS0}w27VW;c{6RE=A?EMbO*C0(3St z+a_eLS#L3^@o@3~0H%)`0xXIJ^f$G6_T1&$B*qDS@xbL^XJhw15lxs@83+ZQ#Mm$+ zt*>hA`0qBJwaN9;>wTd=oWaYmg4rmQA>J0vlR2(B_qRI0lR3^#Bls2)9hD*BC;U`={}RCG{Dci+an;URRx(rxd!^)rHFjc4t{@sH+fJ3 z#w;!k^w6K3Tjwzn-ttH0NEqXHKm}4lXO@55P8j2r(Mp@#_}+o8DqbOpFfH$4){x2h zNe8(i`9^-4)~x_LK30t95(d+i7QQCuTTt7v(Cx@ftjHAf8k47;1G27OV7!YHZ$?QM z`4Qn-wzrggr?z=cH!4f*$IHZ=6>A%$!>7j8JJuA}x7IvsGr&-W4D7p<=shI$`B5e9 z<}P2on=#XA76EN-G_7FHL%W%g_^}!`*>^J*u&{3pepIINSjC1&xZHPh>R>?fHY5}F ziaLhRbJ8`$GM4mM4?kC1QwL?~Ss7n{&4==!(MK0tXEzD~Ivq*Z!koBy&1EU==~grN zF`XEI7uB@VVEKGuos`)b6Glh~XO>G2o1MJ=mE`>|FI!2(b&Bjbo@y@x`ggX2P~=wE zrrL5`zSbc0G$5pHNZW7+fdGops#u%U58`9gTEp+9rdW0)dX9(8YeALdVnvr#9yCI~ z3zf0d4+=4!qksyJu+gC%88se5?WGqcYrm^geJ*?}MtT8q2EQ+r8qd>S+s3~N5uDsT<76*4Nr4zfA5`sip=MeNvG zBmf`EP!(6?DPWjCZt@==y7-5VPhpNi$L{Su9MxoIr+?~fuX@8wHEbK#ukrSIoAhpqgfI5@&rQ4>LlYUnA z#+!2N^xoZcHO)J8-ir~mLy`_3Y+(v8Bh{^6!bvwl1Vh@5lR763%m^oFYcAfN1Xh-f zk=}MhnOSicHy}xEEvtY(l?kpJ*vHy42a7T%KbIWaPywyV0)Bebev0T~h^V;gZEKpD z)#d;b^QM%WK-`BRbJ&5_Hh{^{#1oc5Ty@ z8{@b-0pVJjUL0`I1>|LaGjF<%_w`Tb{lqyWx`iGm#;5aN=nIh(Ll(M?-&*LE%Vr>K zh-8&EDL;#FUbOP3QDUmEF1Kq9jKC4C)O5XT{Y@mulFRr|6LQDX^QkFnDdYgMwwlp_ zwH^Jq#~FOSc2tSEag+r*5FSR;>tJeM`ffFjkNmp+)u>mT^n>Qlnm$e}B|u^^nPhM4 z>$C+QGp!tO8F`V;ad^_nk3K@I@#yg#4!tW)Z5*>sGys4_n@=eYNIul&7uY zl=kn>0_r_m8USyA%r!ROv`blK5bloak2oV@&a7mRBFAt@H_(uNG`$}=QtnRn{cmnz>> z@?#;M2?f^ceJ(tW5tWGk_i-FwZ^41a@qDv#0(sh|?FwSl*dTYbHC z{%TxT*Z|iWj$TxZfW!;=n^4H%;!hLbYg`Ve!nRuv8zLnkcMG45Y_=Rrla4(M_dYhF z*kM2S75gXI-@9G7^Gy)O?!G-saU7&)YliFXNIE=i;tx)usipDY(&7Br<@g+)-{iBn zo^J@j%JK3TXMl~nN{ z_)aGS8yVzZ?lYa)520<%(QnjPQ^ez1pN%)!>Y!Y*`GWh2>@{=Ng=zj}SCu7Jmg8O+8u~lR0UjS&6kzBTp zTy@F>DHaSb*7Ou9bNoX)H1RLyOSC55gp*-F(~>tgz`@UQ(ea#{2h8J;G)0@!9B*Rx zTiB9qYt(m{Q(K75yT2m~4pic?WjPUJJF#MP4)#)^YyhxYmdfjvwf_KYU5N)Z%VhUo zCoHgWxDqBl34{ag=O^cY`rIn0zr^WP(qbjO&BN)e?t2%GQy3sb7=tHMbFQBsl~z*O zNF2;LecjxNJ_MNRkz=e*C4I9qZey>~*14iz;gF!FKo%z{RD zLnM~7w1-wL^R8|Ai~RdKe%C0MoWWF8GPJVCxry7gls3`@4LMfySj~N-ys%#BC|rzE zG`V>4E(N?v0=HWeyDyHW` zH!Yd91o#SR#V>}1+FayZW@k9;Ppe>uXt)wy!L8y3?QKslB=yYT`P`Wpyf+j$Sj2hU zk17#yP@B87mOIMzw&v2Wls$c__iXl`FN?w8WIl0|A2JeSjynlsScx(ce0ut5O?f}l zY0$41!}gT;%K4cyLmScN*=*>A5;olfgAt+xlh(*367 zv2Y)e%q<-2CfEkxLy4E$8UTOI=Ua#y;5HxG9!73W`D29Aarn6+ERSMR*&02WV^#_a z4=NT)Z7h=yr+ZVk`%jO>T&!4&tkEPdcd=0rHVtd)39%k^D|QPfka#noo491jMLjq4TTReR)P=P#*j49(Hzj$XnuMMC%(e4TV?5O}dX0Po}t> zCBE6L%30^lh#WQa$6+ModIA3ccl^ihszks!ejAdH3nEytWMLxiGZCvExBDnr$+N*P z1ALQ8#di7t1LNaKxwX6ncD$vzK1wM%E8KhqtZ6CnnEE63(<9#P`0>X`@Bh^Qx6j9f**Uo`Ss+D7qXge`YvJ$}AFiGv{{St-c}`Cwx_Dfy zc;wi!3!<*1>^p_W#ERcNW}9R_mhBnmKh0)C+v|efl@1iK{6v%E@~+Kw=Pph5;{{f^ z$5-8NDkYTL9K$CN9zT9E`zqNAjMDqAi))a2Ut84mpOv<}6LIEi2`|x`Pb(XWdpS;Y zJ=^)R&CTP93H(Hp(CDUt{i8IGxGZX_ z6?ztS8j$}SX@MLP7*iweEzDZy8ol5f-QAZ$ms zmBG~5RrN-K-CrP{n(KRuUYxMegM=_wUBDiInwHlv`iZMY=wdF589R27 z(4MEIPN|aDH8vnIyhn2Ew1>xat@6^kG|my;a!BS%7*HGQw@_)aTQgb5HplhKm(f#E z^Cp8WU{0a&!iy*tzlpe{9FRxHWoF6=RYI{oho~n(_EyetOE9C0?WD>hV`e}IwY4=;RUUnoGzi^y zT>QLsr91*g-+>4h+DrOKwTUO8@}Vf$ub#nhB?C=H(f;W1ti`#>*yM{`X>U8zrmcu9 zldp*I_|QG+4{$)IwsI6UjgLFEwJV`hap9q*unbrt08+tr;cq`PrB1t!8s zw67oQHjBX9;aTK{{Xg>TsTMkH?it3 zt!6?U6xcPz5X<)R4b!iU7IR^^J^tR58PbqR&}ce=MV%tOz#6sgJnLn!mQ>oiMz-rp zBRoeO8WQ%s{Z~H`R@P-Lw!^MN5q+r`dUmTHvs%@mc*s-$EC<_D!kH1{;rD%LQDur5mrdT_ zBx`+XfhTXw8@RCxASkIJasKLpe~m8x0M?GP_BZ9sa#CMu0<@X{y*gM|G?=q4i_bv( zrwi#E19-{Pkj+CP5{V>+Jwop#?20ecXazOmHQLSO5jb$KXENimH>_)om(~ zJ%V#Dv}@)n(ao?-cl}Zu*a-!X#8rGbWw{y5VCL=MEC-cGUL70q6r|n$H@2EpkQD8V zWu9D}<#z;9r2a3&dQ|?`5r6#iHjm~)zotGQ0dvy1rMY%(CK2Gpx(8n&O}Tz?CmoIx zD&QNli;5dw2U&{0%46(c0J$c@ljl#k26}8&TiljCYoa-K=q@~uY1%F1dxN6sua#2F z#I@T2x#Z(#W47=E>FGBfuD7Sxm>YJt1j{BwY(FFb<=kxcqqj20d4+n<0SSw`*bdoiUj>r0#fG=D-?{~Sc zLro@=5o0-~Oj#tyAWax9p}z^YfuuPfKaa_3<1K0QxCQQ*xgHX2nVBn*BvJ2*C4KThEq`U&+L7=y`dMcM+E`Q^-d86a z=wEzsA5kEX6U33wTB#%^L+9=YU|BG6=83ZLrUmiPj+z^rc#%qMl=;qeGrOu>6&C$5 zUB!RRv=h_dX`wcxAJ$IUP#B-n9#b&4f%h1je5gUrS{UMRc{7X2$f4gZEtxtGQi3;p zx>m;~mxV3|ii!?bkd85Ql%t?JovG>T_E2o)H$K?EtXUum!Yy6E=;NsRQjI|mBMcme zC&i2VuweshDJ&|eVJNZ)4x;QXY{HaFLzu+m)iJS^qL>3=YnEFQZ*G>Y8q5Q6z0urV zt(@3AV7@+EnIxLd%?*a#z%P;1j~W@ty?m3ooDNr#FU(KKN1Hg1#~@|d=q_yP03ZsE z-#o28k#~yiyt6h`S*d948HIt-k%1wB9R;gtrU!lH5R>-fp61n;j%fXy62J$2w+uIW zZ}@>U_~bLg`akK z#$tpS{ETZfhRKT&1-0pOQS`nQ$_`Jt@-m>Ec>GpnjY}EGzMncXPt9*)KM&t)nVFM| zm!6m_h5sbA$P(h?o6CX*B_9A zTy&IfhEhRWdFX3;ehuug$Z`?p@e)YZ^;{t&U(>GP@c7ooD|a8ypZlJ~Fn;M~auVZv zZ=Z{eF#y;dietaV;c8!A-9J2f^27!{`Cc&UMXsQmhEx3NR^anopyWLe#Gn;sU4Aw? znlqAYV8X=59lyZmO%=*=L^ZmY*xcM5Kc=rDIqX9>9!c9GT!c~Xesm>8tOduU4+^E% zJ(gMEub+)4r;tJ!qH8d{{XGajZA+uxS~qWUTz@DbUOYOSbdEVy*2Pv}IfHhutnY@{)=ZVelYI=UT2 zyeN~_!CWaL%j4vVQbgeT7vpU$SYozR@?h}t<>!kWP12oh>5tUEeJ?*8G; z9K@MXPEJg~Jklw);#jxcdkW;cS68elNi4a!21X^F+jWkmnE4K*)|%T}GCu14gX~N#_9@eqmPp=R(x_uHZgJn+!194*7?wE;t5S*8_CxCeUwKGx4x$0 zw0{jrY|kM0afW0<=8>~;bewbN(==S!{+ZFAf` zum1q;XL)go@nq)bMso;<(y=yG+()?BU3^VG*vfil>yN-^Ykt}Hd~r|BJT1rJ;6XHr zohiS&`D7G9dlEr9_*8$-m9ElGUjE#0uH08A%d*-qW5g~Xzh4HcHbw- z@(MCJJg8=DWYcVW)SHqRS(~d;>TT{O2RZ)s<9OZ=3m!=xXOS)>YfD>~|^ zT#KKDHYwf{y)^^V$=W+i4arszyj_QnKaagenaj=ihX)Y8Yb+Gf?7fX57 zJ#Wr%oVxE?iuU(v;o^xn{yQ2s3$p65k}cqTDii6oQt7Kc?&E|on{vjkt+Xj!Nb(*P z)2>{*Fs|U>F|y>6YzP({w!ZdX!cSg<#+sM@GmIX|<-2`D&vj_W@D1rrSBYLjV1Z@L_DfrH07%zBFX2t#Je-kY5W>*5&=jkd z9;2SB#&z$r-uC{{Z+#{xsV}wd@DFr(?x%k}(Xv{A(|OBF5J~ z9V?&dZXG`?dp^a){^lmD+T;RaY6iTRGlZcZ`gr`L1LsU6}9{+%A?#3xzaJ} zEP8n9(uM|5>~{x^j2C8MD}tox0X_oX3J}#!Xr5T4bzr4#7W!*OmKI-gMCYQ5-t^fE zA{-@EIUwtxZGJQ>MIL@dUK(^yP%7g0u^waVOLGs2Ul=nmEDxjxBoBq_$lJHAuSniP z5yAeYu=(5?44~H?DC8cXQh$wRe$)a7(u+B>4^`+;OB-FR00imw))x}S0~J;!hlLo` z=!uB63d_S7h)HgM0z7r4$*}#1tLsYwNIiZPt3;6dW>7#?aiy2zS&>St8rs-(_=+HR z;cXSH+jG|DmtoiPQYb$c;yP`$Nnu=e_LWt-TH@Y1 z(h3ZzNgF`gZ+bDE@iRU)Qso0_B4u>e+N%Svmr7__`)9Uie5Q%Z-O7it*2=&Uu9xdx zroBA9`=WW_#PVERkSsnzsW6rdpV*HVg~iJxjql8=^M>dcpTa%>RPE&Q8hd%YfYU61 zDk}i2N2`9CTu6gZtJ5MfEFRgI(b^7Rg^wQB?<61wffa$OKKgKbQ)D-n_#qCWgsK^ z#a43=@+X!G`b~kpqNf$w1}(s0&}*ep918Z(jdLeHq%v!hBTxGsHOqo|I2mxG3kvwHhn{IsTmlnHak;%is zoX30r8Kzm{{TN`X*0PDtc*F~4T%!5 zdEu78yh=J>%=Hz?i5;29`jwV2*7Uf&kC7CnBy+u{*xAd-@hV0H=G>+)x$UZ=-Mz#o zr;!8cSJ!;ZRCd$MWa9Zy!Kz1Zs^FFcpG z;%#l`T5$sNK;(=^mLA)7OYe(*A5&^R7QHPw>$USHNOIr<++0Xyoj_oA2kC#Gm1{U@ zc@^x#B=N3xN^OWGe9_*e_6@qW}Qsjaf;{t z$iM^crN;y0mB>XTd3)QUfVR24yy#93+jH&dBJK_kjnCr5P)Ur38}zYgQK3O&ZxGbQqo5{6=KhT!NKZJzXqSyg~X>yT>~vyml41ts$>3CGA{cl*Smg zVorhHF{lN9+pTOhxJ}r-xZIaDm&ag7??}$OAzPEQ-v0ng((5v7aNPJm*v@N=Y|QRU zIs_R?p57u{n1X}U^uE3nw{1r?Z8*cgPshWPoOuS~0>Uw6QcEkH04vjAI$z44UV0|n z4|04Yd|xpKC&y#n8Ng|#mBR%s{Xu#GTU(yO^D;BYcPtz> zo^1K1m+-7??R|=;qtkWLUD1k9Z>;~*<-jU>tTD-aa)|eY5xGY-cKjI z{{V5Y_zVcd*?62}VZwk9xg#?%C!hgB_32!jYwdV-X?=C&lwfw3I@u3|n49Ip+wQ_h zSq}4{0N9(Kg--mcp76EG45;#%Gh=9{QpoYJ+EtZ~;cp8aDKUn$<2o!|k;AKcS@NTm z2qNS$4ROqF0k%69{nJED`bCZV>iy zpnzEs2az3qbs4X>HPObi5I336pP7mP`EtZDq*+_rAs#}$1c7oq#WeZJMtyijdHlRw z1BnEMFLHW%i+GN2vJ47uet$HvAD>XK*Z6b^%_=mjN{8NDm5 z#b~{;{{U$J0JA;43S@VO>bt|83cmVDE8^jX*ZnwQD&=qD?r&1}{{Z}An76vp_`VDF z{{XWdANohJ_^vcY2HE1ni{4v*`qx%_{C7~!*SZ!+ME(Bn9&T>Q%$JLk{&{Sv7vg(0 z_Z1_^4wbdn2bNdJFs~!ZXW_i^FSq(jPJ{(_$dQO*%hvV-=~a;naT@0V7A#RiJcE3w z09ets4^Ki!@~7ytmtE_~%PIA-nT z{@<7Sh|y+-LJz3edQZlhNn1N*lYZj%pEue$QF7T6tdEtpES;JePP=c`rM|pyeKzL; zf4AJ!zuTq5%yv9;2~~Z@COzd(pkKfWU24BfSP75H4kv11^3};fu)BrAgJOu!!Kv=&SA@;bKF?S~) z+jHjf_*p!(nOv;%oGDTjSYnDO(MnENTd}s$uTUxCQg8{!@V%*n+tarvkr10Ou*DIw z{-M!G39$*fDI;@8+Mf#zYi3H;TU9v^+m2g{$D5eqGx77dyme`0$J`c3@2-UYGCb+H zrMAu(&nwC0<98N0&c>E31z&P&t0-VST3ipMPiaR?Mv24s{vzNuHy-TR^KKGJAqCfZ z*eC+R=cNf@wwA5qa(MGk$7JQo8F=_*pD9A_VJ7cxBwOE56^OlQLWpB`4=>73jXo*} z;=?0r%==5RUr;ImI&RnFRK`=d)us0D_dfE^nKL<|iNo=*jCtir8xjd7$xm?OnQmEb z5lL;!U=N)paCtE@);o8Zn+GBe2L=O^#<<-lCm0c86;Y`U{<#S~NDcF)-(MlF*|@7+ z%iGx;t~tr=Lxqi-5oVX#h?%8U7WB;JLZ6P$vW~m>*q2${WSP*z$3!B^g&_LJ%Y*ZEM^ z@HQp=tD0}s@~U3ZpK9oO-pz76I#j;BDf6ucS3~YSuc6n(UrLn8t^sEe*@$aM7y)CU z1Z!7_(ziaYtg$zwD+BF(4~edg5!fafB9E2zjjMl4Zn0J)Lw_A$kM+#7#MP@C}M+gJ_6lsRo0g42s!gG zhihsW*banv)0Xhf`B_794g(TY1#cnaK(Azd*|;&<)+&16prz>kd3VT$83dl24X;Av z#jYw+GR2Ob_&q#`p|fkvKFctD?R$lAEz;B_;Y%5pbhrHWVP6>v{q?paCHEFnFK%%t zvGMdXSZnjHU!~#I@|oH8*KaG!#Nx>@O`{qo5v74sB8vm&Z(SPnj{T;`l2ey1 z``W0UoME3@>?g1k~IGS`F7eqH?EJLNPQ}|Js;_lBU^il z7>}8uyJ%B^3ro8CDCm6Z6?nHRHq~-|L!|~l`rVIF&|6x-d60FcrGu06 zGUaB$44Q!9SKtn&kaNk0i;$Kv!~qMtefj_ZJ~RyDn3vn*GguyhNcoXW6cRbq_Lf(w zz)lqFf5aBmr(xjD+U{cDqle!A09AKQ9=mqx$_>X+de@p+#1-P?fW_?E&W=m`k4iKV za(;y|B!r_KMKmqEg~S9it4N#U2k|d~G}+)iR(M89`-&-Ixb{*6@4w}wrdMV8|CAK_M$l-yxW5rQkX=LsP)wwD2%5I(jv zTLPKWkJnlBMU9ESfCsPHNz^tBzqGT>o7z~sq=!t|awUj$^edR|KC4ms+|%hWbqoWL z_X5XXrA|ZI9VztN=TwPpL-IOn@Tx~X)IBfnqgzemug zRv!?m&caw<^5u+;E#t4t!iJh%hkfR(3%R!pyskq7-IIl8FO87uLWBSxY@1r@G_Ole zx$VKd=Yn5+_XqaA3Ov{fyDZR1)&lzr3k&?I)9jte_d)K?I$j$VV{duZQySgG0wU$C zf229u)L}}zS8Gp@at|HtE@NXf(cmCwnn-RnUbZAr#s@hHpNh_hHb%(DDGkY1QW-2f z*b*)c3^k@c-)r-jqANQ44kS7SECI2w)M;uLrk#Sti#A6i9s*uTiXf6%S?rVPog9!$uu_PVwQF{{{UsqENvOk zk0awk!GWEh!x<-$9^@5uQo_e>-88qA4d(-|Wp3o+3UV{Xi?vrkZBeq}Zm8D-{mZta z#G4JwZx~k_dL1vQ`>K0YHBsdYkmpB8>rm z+VJwEdCwZN86}9jUg~}p^BPl5i{#CNjt@V{#4NtkA=}~V2DG^~8RfCzgAt}*#Hd!| z;yPAnIr|rlhr+|o^VwTYbh9iFu|I+&P31xGyEolJ{{U9o`x}pcOxcq&GYDk9)h6~d zFga#9{o9zm$sm(Gu^`BiMDnJmVzt2+@m{q#aa6pmP2E%exp2;N=V8W6D=The89#^* ztvs-|jtp?B<#EH1NS(34AQoMuk<@EWmNQFyhc}iT+6-`u7UAWf9Yty+tX_MQlP*Ur z--wroaVdNJb*(E|$ecaL%0Y{hD#})A1(MwW^Axn$D&TSRav!%aWlU_iIj*>`;qCfZsrtFKESwH`r(wnBqcrLXmrb_nKmZD~={~|T zduNr;l5+5}f=$?tp!ramw$)o3xAM4zj}*qlNaf3rbtn30%~QXYv-@k={I@sGL&Ifa z&5ex2O_4N_ymp4b>9}fJqMF&7@)uiQT#1{E#eQS{;OC=uf*6>+k(lO{r><>$|QH4;>Sh>z1Lt>N6AShkNQjprL?Qv zP(i{bMn*A{J`7li$jDfk1Z``ZjYYN4(`&v)>xL@)=l2a`jK`8>uvo>}%X!;UYLi-p z*l&sbzV5}6Z2b6>jl__9pYzhJas_ULL zzauH(_S$)EtCCIFd3jeh*6q`xX*Erm-B3lDH2B2K&IaA*Y1#*;@28(Tf^EFWCU1AH zLn>xXbpxbg+8+aMwOOVUzea!imlAg`Z;TGx$^AbrhHTi`uVOJ_cPMZEVWk>vZhK*z zCm6Z>js$s`B3!I!26U4p_q3CpM!M*>(vB0i92+u;#viAKaDB!%AlRx38EGU8=W(W9 z3-z(F7@>l&W2shP0sE-nXKwhiA0?z)ksM(xb-ifVUzv}#!01S|zGk)$oW6(W@%yW` zLd)*PylEC$RykQdMDI4OB)t>c9kagS?&;GDeq%?F(N7$Kp?5~~$Sl6A(9SBKg6}aR zcNC8yShAv!Fpe=Y$t%li5Quh?7e%=E(%Lx3OyzRlBQRjYiR?#@9G?7fA@#3}TT?<}w%(nyYvM2bE6kWgT_nFQfZ!wDbAgemj@T&Q2SJ z$7ITpvMwc&7!sdq=CPhNOqk=H zT~&9txZ7+lEHxW%;YV55zx3NuM=YhA7|0h}Vr!xH7=v_(e5WVODcx-`yQ`^Zntg#$|zM{<=v zc&>*&KxW+*ZY!wOP%&={t>|8cTv0q6j!z~YLMWwoh{i;!?QmJaAw~S@WW|bIuF{q8 zxa{9{OkojO*dI$-Zb1jBu<)waF1@?Ya~5C&OU4zC%GFXU+tl` zTTB@+WM}1gu#6p!PO3VMq*Sj})30WZ>z3ikzTmgF)`pXS-m8AzWwczpkhRQin}{9_ z&>9=e!PADJAlVexYkF;`jp`9fpsSB0Q#6tUXspq#u2|mIC(5atlF2bke5!$wBNtN{ zLJQd1>(CD}Z&%l(FJ=D#YBSCu%DP2;$K$78wx0A|dp74NSQw-Gk>~;OzlN15Rk8Yf z!nl!a9-$Zl-wP9Z5^_1@sqZ|mm_-{+=6;lbtc)vJmiTeqx!m%4L*1!oU<&M z{q9pJ59n>AA22CLm5E#@A%|{?S5bfGL%{h@%1im|*Ve?Jm5pi~lz53r%D+Np1bs~@ zq4qfmNl7~Uwgbomr6y|eo_8vj%FTZfAv*jkZPIhLbCWCO_I4Dx3>l*29B$}IW+(aA z727f2uDIFvFK)8Q#NxcJV?U#aqTBJvV@oOWuFX1fZP=C+u{`-9n$m>0QPTTPpAMAP zh5@phaSTu5zPHd`h&{{y0GHtL5URHEy`)j87r6OQ65k;*wmwCc@j268fSdhwq8JE9 z+5uByz=D2brDnpM3`RVp9}qq|n$@_WUB?-dj>%S#MG=BfU50}3op11@*!tdIDs2lG z9c|^~UOnyW&Vyyqh(0Gu0ET$Vp#%$$<62gz@l{I(VYnzHig*h{9xI00MbAQf{ODRZ zT7D)qnN~(4c)0SV$l>qyx{Hzb(BEt{*DBny6%7^az~12ad@1#%+IR|z zIOK?cPrMsj*e$=tn7usU7)9Js1}ECs-r|qyP^8=LrQe~~vj-z0{{U>7MbH-{E&K}u zZ?dN+F#kD}Z$`P@@k2``Z8 znnZ^#%B7vwAQ%Io1f5Sxc{)zs&_WX)7AV_>+mrF=Yi-DDFsqY~B+{6n0KCr{#<%Lv zp!rsp2E3x=;9MR>TOmErtr(F#%kC&Ov#q|-Q`YCFPBGZ7HeO-KZf6DrM^--EzR(dd z>**v|$}j4u*(AkUTW(-hW^Q(FV&!aEqDdBPlyAVr4at7KI#sojME1D@?i}t@ipG8jho-KC)gs!d$X$^yOc;`&T26iWt+9#pJP;Q5Xsu2|+Qk zsrUnXQ`nr?8}`45$IPEKTaP)p%<~B54#^~K8aZGT5u+*8l{9BfYE1rKE(^K&40vVs zw&Dm|CNXD)-$I_71E;5@44VZm;^!vh!r@1bxUomHu&@dw+7-=|1=NDwFRd*!SnOnP z`illNb0mdi4s3RiBV+y)VQ=Kw+PpZIxX-`+D=d+y9T;iX;d*J%SZd6|w0UZ=SiC7A zzfw^D0EH=#!G|QAS&RCRsQc)I6mBS<9!4l_AvOo0RsR6WmYRN2_HPj1sF1qZwzF&I zR@T;&ZjG;Myx(JGHz3(Es{0{FS3Q=xHR2h6Zo6t8 z(T4+_d9TXlplNZW{1K~qkdfzVzOqgc+dDT-*3OHYQLP0LN6}OG6QtQQho8SC49~Z{Y4;d%79E=O$#CENcO$c8KhtfK9 ztpm1(E_C?(ceVnoVT`0{Z~(PeS3gZNkL>JBkr^N!yS`N6Zfip9zuOFH5%~-_pcyLX z+Rn_3N|FBn_^9-`{{VROu5I`AUTf@&CkHpPd!WzA%_d$RaJ%Ql5DD+b2uQZ6at@$K*%80DwnUyObzIwmEyv}>Wa z&s}LJwsNGzC}eZ+@$BaXS0F8wR$CA(2B1}@ne98a05UnOjMFFgHe8gDx412^2;5kp z+tqF7RQ~`x6a6z)`+paOIIb=nY|NXo=QM{SB|th2%sn3fwXNFm;AGdoB|iD& zGy8`+4488pj#!YZy6tC>ToM?O>K5n?FZrH*aGM8`#F7S&-uGodp^JKVe5$(4A+^mD z_b|y&RY6M-bRZgk31^bOHqZ&#;$1DN9(ABz0r-qOZcCSmvID*{EXv8apg!a+83d1m zQQM)?*+|$tJ~V2gH8}FbyCW_`IZ%2N<5{icQ#%oVSrV(3Bp-Ew7YaYdg$U!kazq>- zAB)h|Y-X+HvZ}4gx$E?;Y2~NF;2C+@ zW!;}7(pwTa9NlzYpne-(j$mTWhq*rH#mVK;Cy}xQn8_2oV6V5182g4O(&0-F%R|>% zr09}fQ}>sBa=f2rW$=R*LB_HOq{@^CfiD~%! zC5jl9Sz9Y6b|vJtv4jIa2Z^Qix3k^(4u9J8$ATOzoVXV%O|7{J4HQZ@GkQk7LXSEh z=RCFgeib<$+Ty!@IP$YO$g`&R5Jd_HM?r8w152Ax^}%M`iDYxUS3I1M=jKUWA&wk7 zDH0$=-=I%T$!ij8OWF?Ax)HIYk#+y(MyZRz>>z!l1Q_mAhHHyu(I{BwKhrXdpk+nnK|+1 zPmhZtl zit6O;Js1vzRr4(2&x{takWZ5ryxU0|Rfoo>vGqIS@!V8c;O`=6)6?m?v-S0P*FER8 z<|jgY3|TQYQqB|!6&^6A{*p~$=CrIVNeUv4yH$V(P&{u`nMiQ{cu=;>!R(fD&$F-&Hz$#dzO-NrZ~kCXCK>)lpCHvr*GweZ>g@#@Z`0_I zvt%OZ0Y@Mm2=hHDPbUlbQW!aoHQxIUNg#Cor5C@}lJgbT@@?)shnqVtKk126=XM0p z)1lk358CL2nS6|_m-fU;P4&A1K)1rD^}HWQ(X;lLjlU6KEIM?k>)H0a08&LlMKqp$RsnDKF9y6PTJ2^}+sMq|Qz5tJLP59$0D288HA$Rz$t#}# zbnxjzp}ds1N8O&$-_z~_KlrUnZzCb?0ruu=pY?Blku)-Va6|55!cIckKdg)Oy{|)l zgH}TpL$7O15hRHD2%SM4E`*zXmFCOa)5kIQrXEW#5r*paaTFz3b+*M7=xNi3Ys%g} zLYª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�_k)^cUW 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 z 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 H%UA!|FgXq% literal 0 HcmV?d00001 diff --git a/limestone/all-samples/assets/images/jellyfish.jpg b/limestone/all-samples/assets/images/jellyfish.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7d05343d694c5e908b5e083446e5b5b2949cf3d1 GIT binary patch literal 52574 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