diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 81c7032b..2a8935f2 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - smalltalk: [ Pharo64-6.1, Pharo64-7.0, Pharo64-8.0, Pharo64-9.0 ] + smalltalk: [ Pharo64-6.1, Pharo64-7.0, Pharo64-8.0, Pharo64-9.0, Pharo64-10 ] name: ${{ matrix.smalltalk }} steps: - uses: actions/checkout@v2 diff --git a/README.md b/README.md index d027bb0c..95c5224d 100644 --- a/README.md +++ b/README.md @@ -182,8 +182,8 @@ ZnWorkspace openUrl: 'http://ws.stfx.eu/1JIZRQS7OI00' | 1.1.x | Pharo 50, 60, 61 | None | | 1.2.x | Pharo 50, 60, 61 | None | | 1.3.x | Pharo 50, 60, 61 | Gemstone 3.4.1 (*) (**) | -| 2.x.x | Pharo 61, 70, 80, 90 | None | -| Dev | Pharo 61, 70, 80, 90 | None | +| 2.x.x | Pharo 61, 70, 80, 90, 10 | None | +| Dev | Pharo 61, 70, 80, 90, 10 | None | (*) *This version of Gemstone is tested. Older versions might work but we did not tested it.* (**) *The compatibility is not total. MaterialDesignLite uses Pharo's Traits to provide the users composables components. Thus, if the Gemstone users wants to use those components they will have to flatten themself the Traits in their Seaside application* diff --git a/src/BaselineOfMaterialDesignLite/BaselineOfMaterialDesignLite.class.st b/src/BaselineOfMaterialDesignLite/BaselineOfMaterialDesignLite.class.st index a03f289d..5aa6ee64 100644 --- a/src/BaselineOfMaterialDesignLite/BaselineOfMaterialDesignLite.class.st +++ b/src/BaselineOfMaterialDesignLite/BaselineOfMaterialDesignLite.class.st @@ -73,7 +73,7 @@ BaselineOfMaterialDesignLite >> magritte: spec [ baseline: 'Magritte' with: [ spec loads: #('Seaside'); - repository: 'github://magritte-metamodel/magritte:v3.7/source' ] + repository: 'github://magritte-metamodel/magritte:v3.8/source' ] ] { #category : #dependencies } diff --git a/src/Material-Design-Lite-Extensions/MDLFoldButton.class.st b/src/Material-Design-Lite-Extensions/MDLFoldButton.class.st index ec6e1a7e..82ab82ac 100644 --- a/src/Material-Design-Lite-Extensions/MDLFoldButton.class.st +++ b/src/Material-Design-Lite-Extensions/MDLFoldButton.class.st @@ -12,7 +12,7 @@ Class { 'divId', 'isFolded' ], - #category : 'Material-Design-Lite-Extensions-Panels' + #category : #'Material-Design-Lite-Extensions-Panels' } { #category : #'instance creation' } @@ -112,13 +112,6 @@ MDLFoldButton >> renderContentOn: html [ ifTrue: [ html document addLoadScript: ('document.getElementById(''' , self divId allButFirst , ''').style.width=''0'';' , self onCompleteScript) js ] ] -{ #category : #options } -MDLFoldButton >> resetVisusOnFold [ - self - onCompleteScript: - 'setTimeout(function(){for(i=0;i> showAndHide [ ^ ('$(".visualization").children().width(0);if(this.dataset.fold=="false"){this.dataset.fold="true";$(this.dataset.for)[0].style.width="0";}else{this.dataset.fold="false";$(this.dataset.for)[0].style.width="";};' diff --git a/src/Material-Design-Lite-Extensions/TRootDialogRenderer.trait.st b/src/Material-Design-Lite-Extensions/TRootDialogRenderer.trait.st index 4b907840..b5c05d07 100644 --- a/src/Material-Design-Lite-Extensions/TRootDialogRenderer.trait.st +++ b/src/Material-Design-Lite-Extensions/TRootDialogRenderer.trait.st @@ -11,7 +11,6 @@ This trait need to be used by the root component of the application. Trait { #name : #TRootDialogRenderer, #traits : 'TWithRootDialogComponent', - #classTraits : 'TWithRootDialogComponent classTrait', #category : 'Material-Design-Lite-Extensions-RootDialog' } diff --git a/src/Material-Design-Lite-Utils/MDLLibrary.class.st b/src/Material-Design-Lite-Utils/MDLLibrary.class.st index de3842ad..a7fdeda6 100644 --- a/src/Material-Design-Lite-Utils/MDLLibrary.class.st +++ b/src/Material-Design-Lite-Utils/MDLLibrary.class.st @@ -158,6 +158,23 @@ if hash sass 2>/dev/null; then ' ] +{ #category : #css } +MDLLibrary >> customCss [ + ^ '.nestedList .listContent .listContainer .nested-item { + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + align-items: center; + -webkit-flex-grow: 1; + flex-grow: 1; + color: rgba(0, 0, 0, .87); + text-decoration: none; + white-space: nowrap; + cursor: pointer; + width: 0 +}' +] + { #category : #polyfill } MDLLibrary >> dialogpolyfillminCss [ ^ 'dialog{position:absolute;left:0;right:0;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;margin:auto;border:solid;padding:1em;background:white;color:black;display:none}dialog[open]{display:block}dialog+.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,0.1)}@media screen and (max-width:540px){dialog[_polyfill_modal]{top:0;width:auto;margin:1em}}._dialog_overlay{position:fixed;top:0;right:0;bottom:0;left:0}' @@ -276,7 +293,7 @@ MDLLibrary >> iconCss [ font-family: ''Material Icons''; font-style: normal; font-weight: 400; - src: url(', self urlOf: 'MaterialIconsRegular.woff2' , ') format(''woff2''); + src: url(/files/MDLLibrary/MaterialIconsRegular.woff2) format(''woff2''); } .material-icons { @@ -1061,7 +1078,7 @@ MDLLibrary >> selectSass [ { #category : #accessing } MDLLibrary >> selectorsToInclude [ - ^ #(#materialdesignCss #nestedListJs #mdlDialogJs #getmdlselectminJs #iconCss #materialminJs #dialogpolyfillminCss #dialogpolyfillminJs #robotoCss #panelsJs) + ^ #(#materialdesignCss #nestedListJs #mdlDialogJs #getmdlselectminJs #iconCss #materialminJs #dialogpolyfillminCss #dialogpolyfillminJs #robotoCss #panelsJs #customCss) ] { #category : #sass } diff --git a/src/Material-Design-Lite-Widgets/MDLNestedList.class.st b/src/Material-Design-Lite-Widgets/MDLNestedList.class.st index 6cd56814..3e5fae15 100644 --- a/src/Material-Design-Lite-Widgets/MDLNestedList.class.st +++ b/src/Material-Design-Lite-Widgets/MDLNestedList.class.st @@ -451,7 +451,17 @@ MDLNestedList >> obtainElementForPath: aPath [ { #category : #private } MDLNestedList >> obtainTreeFor: anElement [ - ^ obtainedTreesCache at: anElement ifAbsentPut: [ MDLNestedListTreeNode list: self element: anElement ] + ^ self obtainedTreesCache at: anElement ifAbsentPut: [ MDLNestedListTreeNode list: self element: anElement ] +] + +{ #category : #accessing } +MDLNestedList >> obtainedTreesCache [ + ^ obtainedTreesCache ifNil: [ obtainedTreesCache := IdentityDictionary new ] +] + +{ #category : #accessing } +MDLNestedList >> obtainedTreesCache: anObject [ + obtainedTreesCache := anObject ] { #category : #accessing } @@ -519,7 +529,7 @@ MDLNestedList >> printSublistFor: anIntervalRequest context: aContext on: stream { #category : #rendering } MDLNestedList >> renderContentOn: html [ self ensureId: html. - obtainedTreesCache := IdentityDictionary new. "Reset cache while loading page." + self obtainedTreesCache: nil. "Reset cache while loading page." html div id: (self idFor: #nestedList); class: #nestedList; diff --git a/src/Material-Design-Lite-Widgets/MDLNestedListItemRenderAjaxStrategy.class.st b/src/Material-Design-Lite-Widgets/MDLNestedListItemRenderAjaxStrategy.class.st index 52ec4568..5851b81f 100644 --- a/src/Material-Design-Lite-Widgets/MDLNestedListItemRenderAjaxStrategy.class.st +++ b/src/Material-Design-Lite-Widgets/MDLNestedListItemRenderAjaxStrategy.class.st @@ -12,6 +12,7 @@ MDLNestedListItemRenderAjaxStrategy >> asAjaxStrategy [ { #category : #'as yet unclassified' } MDLNestedListItemRenderAjaxStrategy >> getHtmlElementForNode: aNode inDiv: div index: anIndex indentedBy: anInteger on: html [ ^ html div + class: #'nested-item'; onClick: (self actionBlock cull: aNode element cull: html) ] diff --git a/src/Material-Design-Lite-Widgets/MDLNestedListItemRenderAnchorStrategy.class.st b/src/Material-Design-Lite-Widgets/MDLNestedListItemRenderAnchorStrategy.class.st index 081030d5..b985361f 100644 --- a/src/Material-Design-Lite-Widgets/MDLNestedListItemRenderAnchorStrategy.class.st +++ b/src/Material-Design-Lite-Widgets/MDLNestedListItemRenderAnchorStrategy.class.st @@ -22,7 +22,9 @@ MDLNestedListItemRenderAnchorStrategy >> asAjaxStrategy [ { #category : #'as yet unclassified' } MDLNestedListItemRenderAnchorStrategy >> getHtmlElementForNode: aNode inDiv: div index: anIndex indentedBy: anInteger on: html [ | anchor | - anchor := html anchor. + anchor := html anchor + class: #'nested-item'; + yourself. self actionBlock ifNotNil: [ self isJsAction ifTrue: [ anchor